网站设计的流程,西安市高新规划建设局网站,四字顺口名字公司,第二个深圳建设在哪里1. 前言 在数据分析和统计学中#xff0c;绘制统计分布图是非常重要的#xff0c;因为它帮助我们直观地理解数据的特性#xff0c;并为进一步的分析提供基础。统计分布图能够揭示数据集的结构、趋势、集中趋势和离散程度等信息#xff0c;从而使我们更容易做出合理的假设、…1. 前言 在数据分析和统计学中绘制统计分布图是非常重要的因为它帮助我们直观地理解数据的特性并为进一步的分析提供基础。统计分布图能够揭示数据集的结构、趋势、集中趋势和离散程度等信息从而使我们更容易做出合理的假设、判断和决策。 2. hist直方图
适用于不同样本来源的比较小数据集不同样本间的数据分布比较
或同一来源数据集作图选择合适统计模型
直方图是一个常用的工具用于展示单个变量的分布。它将数据按区间bins划分并通过条形图展示每个区间内数据的频率或数量。 2.1 直方图的使用场景
1. 查看数据分布
直方图最常用的场景是查看数值型数据的分布情况。通过直方图可以直观了解数据是偏向于正态分布、偏态分布还是存在多个峰值多峰分布
2. 选择合适的统计模型
通过直方图的形状可以帮助确定数据是否适合某种统计模型。例如判断数据是否符合正态分布、均匀分布或指数分布等。
3. 比较多个数据集的分布
直方图还可以用于比较多个数据集的分布。通过叠加或并排显示不同数据集的直方图可以对比它们的分布差异 2.2 代码与图
import matplotlib.pyplot as plt
import numpy as np# 生成随机数据
data np.random.randn(1000)# 绘制直方图
plt.hist(data, bins30, alpha0.7, colorb)# 添加标题和标签
plt.title(Histogram)
plt.xlabel(Value)
plt.ylabel(Frequency)# 显示图像
plt.show()2.3 常见参数
bins指定数据区间的数量alpha用于设置透明度多个图形叠加时最好使用color用于设置柱形的颜色edgecolor设置图形元素的边缘颜色linewidth控制线条的宽度单位为point 3. boxplot箱形图
适用于同一样本来源大小数据集皆可内部不同时间/状况的样本比较
显示一组数据的分布情况和统计特征特别是用于比较不同数据集的分布。它通过显示数据的 五个数值摘要最小值、下四分位数、中位数、上四分位数、最大值以及识别异常值帮助我们快速了解数据的分布、离散程度、中心趋势等信息。 3.1 使用场景
1. 数据分布的可视化
同时展示多个数据集的分布情况如不同实验组、不同变量的结果。
适合用来查看数据的对称性、偏态以及是否存在异常值。
2. 数据的对比
可以通过比较多个箱线图直观地对比不同组数据的中心趋势、变异性和分布
例如比较两个班级的考试成绩分布、不同产品的销售额分布。
3. 检测异常值
快速发现数据中的异常值outliers。位于箱线图“胡须”之外的数据点即为异常值帮助分析潜在的极端情况。
4. 查看数据的集中趋势和离散程度
直观地看到数据的中位数和四分位数判断数据的集中趋势和离散程度。
适合用于非对称分布数据的可视化例如工资分布、房价分布等。 3.2 异常点分析
是的boxplot 中的异常值通常是指超出 1.5 倍四分位距IQR, Interquartile Range范围的数据点。具体来说IQR 是上四分位数Q3和下四分位数Q1之间的距离即 1.5 倍的 IQR 是一个常用的标准用于标识数据中的异常值。这个标准来源于统计学中对数据分布的一个经验法则。 3.3 代码与作图
import matplotlib.pyplot as plt
import numpy as np# 生成随机数据
np.random.seed(10)
data1 np.random.normal(100, 10, 200)
data2 np.random.normal(90, 20, 200)
data3 np.random.normal(80, 15, 200)# 绘制箱线图
plt.boxplot([data1, data2, data3], patch_artistTrue, widths0.6, boxpropsdict(facecolorlightblue), medianpropsdict(colorred, linewidth2), whiskerpropsdict(colorgreen))# 添加标题
plt.title(Boxplot Example)
plt.xticks([1,2,3],[A,B,C]) #指定修改标签# 显示图形
plt.show() 3.4 相关参数
vert 设置箱线图的方向。True为垂直False为水平 patch_artist是否填充箱体为True则填充showfliers是否显示异常值widths箱线图的宽度positions图所在的位置。position[1,2,4]boxprops控制箱体的样式boxpropsdict(facecolor,color)flierprops设置异常值的样式传入字典showmeans是否显示数据的均值 4. errorbar误差条
适用于同一样本来源小数据集比较内部数据
误差条是用来展示每个数据的浮动误差显示测量误差或者不确定性 4.1 使用场景 测量误差当你有测量数据时通常需要显示每个数据点的误差范围。error可以在数据点上添加误差条帮助显示这些测量误差。 数据的不确定性在科学实验或数据分析中数据的准确性可能受到各种因素的影响errorbar 可以帮助你表示这些不确定性。 比较数据当你比较不同实验组或条件下的数据时误差条可以帮助你更好地理解数据的变异性和可靠性。 4.2 代码与作图
#errorbar
x [2,4,6]
y [3,7,11]
yerr [0.3,0.5,0.9]fig,ax plt.subplots()
ax.errorbar(x,y,yerr,fmto,linewidth3,capsize10)4.3 相关参数
fmt设置数据点的标记样式ecolor设置误差线的颜色linewidth设置误差线的宽度capsize设置误差端点的长度xerrx轴数据的误差yerry轴数据的误差 5. violinplot小提琴图
5.1 简介
同一样本或不同样本比较均可使用
Violin图是结合了箱线图和核密度线的图片展示数据的分布情况。
核密度线(KDE)Violin的形状代表数据的分布密度。越宽表示该值附近的数据点多窄就表示越少
两侧对称左右分布是一样的使图形更容易解读 5.2 代码与作图
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np# 生成随机数据
data np.random.normal(size100)# 使用 seaborn 绘制 violin 图
sns.violinplot(datadata)# 显示图形
plt.show()6. pie饼状图
适用于同一样本来源小数据集内部种类比较
饼图适用于展示数据中各部分在整体中所占比例的场景。它能够直观地展示每个部分的相对大小适合少量分类数据的可视化。 6.1 使用场景
1. 比例分析
当你想展示数据集中不同类别的占比如市场份额、预算分配、人口构成等饼图是很合适的选择。例如展示公司不同产品线的销售额占比。
2. 数据种类较少
饼图通常只适用于少量分类数据一般不超过 5-6 类。如果分类过多饼图会显得杂乱且难以阅读。 6.2 代码与作图
import matplotlib.pyplot as plt# 数据
sizes [15, 30, 45, 10]
labels [Apples, Bananas, Cherries, Dates]
colors [gold, yellowgreen, lightcoral, lightskyblue]
explode (0, 0.1, 0, 0) # Bananas 部分稍微爆开# 绘制饼图
plt.pie(sizes, explodeexplode, labelslabels, colorscolors,autopct%1.1f%%, shadowTrue, startangle140)# 确保饼图为圆形
plt.axis(equal)# 添加标题
plt.title(Fruit Consumption Pie Chart)# 显示图形
plt.show()6.3 相关参数
labelslabel[A,B]添加标签color自定义块的颜色autopct显示每个部分的百分比explodeexplode[0,0.1,0,0]设置每部分是否分离分离的距离shadow添加阴影效果radius设置饼图的半径pctdistance设置百分比标签与饼图中心的距离 7. hist2d二维直方图
适用于大数据集同一样本来源的内部数据分布比较
适用于将两个变量的分布情况在二维平面上进行可视化。该函数会根据传入的两个变量将数据按网格进行划分并统计每个网格中的数据点数最终生成一个二维热图。 7.1 使用场景
1. 分析两个连续变量之间的关系
当你有两个连续变量并想观察它们之间的相关性或分布模式时hist2d() 是很好的工具。它会把数据分成网格bins并显示每个网格内的数据点数量。
2. 大规模数据集
将数据分箱处理把数据点密集的区域以颜色浓度来表示能够更加清晰地显示数据分布。
3. 数据量大的情况下替代散点图
如果数据量过大散点图的点可能会重叠导致图形难以解释。hist2d() 可以通过统计数据点数量以颜色的深浅来表示点的密集程度能够更好地处理数据重叠的问题。 7.2 代码与作图
import matplotlib.pyplot as plt
import numpy as np# 生成一些随机数据
x np.random.randn(10000) # 横轴数据
y np.random.randn(10000) # 纵轴数据# 绘制二维直方图
plt.hist2d(x, y, bins30, cmapBlues)# 添加颜色栏
plt.colorbar(labelCounts)# 显示图形
plt.show()7.3 相关参数
bins设置每个维度上的箱子数也决定了网格的分辨率,(3,4)range定义二维直方图的范围cmap颜色映射用于指定不同箱子计数的颜色Blues,Redsdensity返回的数据归一化总面积为1cmin设定颜色强度的最小值小于将被设置为透明 8. hexbin蜂窝图
适用于大数据集同一样本来源的内部数据分布比较
8.1 简介
与hist2d效果相似都用于可视化二维数据的分布情况
使用的是 六边形网格将数据划分为蜂窝状的六边形区域。这使得视觉上更加紧凑六边形网格在表示连续数据分布时可以减少“边界效应”在某些情况下能比矩形网格更好地展示数据分布。 8.2 代码与作图
import numpy as np
import matplotlib.pyplot as plt# 生成随机数据
x np.random.randn(10000)
y np.random.randn(10000)# 绘制六边形分箱图
plt.hexbin(x, y, gridsize30, cmapBlues)
plt.colorbar(labelCounts)
plt.title(hexbin Example)
plt.show()9. ecdf累计概率密度图
适用于小数据集同一样本来源中数据大小分布比较
展示了数据集中每个数据点的值在整体数据中的累积百分比即有多少比例的数据点小于等于某个值。 9.1 特点 1. 累积分布ECDF 图展示的是每个数据点的值和它在整个数据集中的相对排名累积百分比。因此纵轴y 轴表示的是累积概率范围从 0 到 1横轴x 轴是数据点的值。 2. 每个数据点对应一个累积概率图中的每一个点表示一个数据点和它在数据集中所占的比例。例如某个点的 y 值是 0.6意味着 60% 的数据点小于或等于这个点的 x 值。 3. 对数据分布的完整描述与直方图和密度图不同ECDF 图展示了 每个数据点 的信息避免了由于数据分箱导致的失真因此它保留了数据的精确信息适合小数据集。 9.2 代码与作图
a np.random.normal(4,2,10)
print(a)
fig,ax plt.subplots()
ax.ecdf(a)