【有书共读12】跟老齐学Python数据分析读书笔记10
Matplotlib提供了多种成熟的绘制统计力的方法,包括:柱形图、条形图、箱线图、饼图、直方图,下面对其进行一一的简单介绍。
1.柱形图
Matplotlib中绘制柱形图的函数是bar(),对过参数可以控制其形态。其定义为:
plt.bar(left,height,width=0.8,bottom=None,hold=None,data=None,**kwargs);在应用中,主要用到以下的参数:
left:柱子的基本位置
height:柱子的高度
width:柱子的宽度
bottom:柱子与底部轴之间的距离
具体使用方法如图1所示,注意中间粉色背景部分的提示,在Matplotlib3.0中left将要被x所取代。在图2中我们使用x代替left。
color:柱子填充颜色
edgecolor:边缘(描边)颜色
linestyle:边线的线型
linewidth:边线的宽度
hatch:填充柱子内部的图形(也可以是字母)
tick_label:设置X轴刻度的标识,替代默认的数字。
效果如图3所示:
图3
设置bottom的值,我们可以得到具有特色的堆积柱形图,如图4所示:
图4
此外,我们还可以通过调整“柱子”的位置和宽度,形成“簇状柱形图”,如图5所示:
图5
2.条形图
MatplotLib中使用barh()来绘制条形图,如图6所示
图6
为了对比更鲜明,我们还可以通过调整“高”的符号,画出正负条形图,如图7所示:
图7
3.箱线图
Matplotlib中使用boxplot()绘制箱线图,图8所示是两个最简单的箱线图,其中右侧的箱线图,因为设置了showmeans=True而显示平均值(绿色的三角形)。
图8
当然,也有水平箱线图,通过设置vert=False(默认为True),来达成此目的,如图9所示:
图9
同样,使用下方列出的属性,我们可以对箱线图进行“修饰”,在图10中对箱体、须、箱体顶端和末端线条、中位数、异常值进行了设置。
x:指定要绘制箱线图的数据;
notch:是否是凹口的形式展现箱线图,默认非凹口;
sym:指定异常点的形状,默认为+号显示;
vert:是否需要将箱线图垂直摆放,默认垂直摆放;
whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差;
positions:指定箱线图的位置,默认为[0,1,2…];
widths:指定箱线图的宽度,默认为0.5;
patch_artist:是否填充箱体的颜色;
meanline:是否用线的形式表示均值,默认用点来表示;
showmeans:是否显示均值,默认不显示;
showcaps:是否显示箱线图顶端和末端的两条线,默认显示;
showbox:是否显示箱线图的箱体,默认显示;
showfliers:是否显示异常值,默认显示;
boxprops:设置箱体的属性,如边框色,填充色等;
labels:为箱线图添加标签,类似于图例的作用;
filerprops:设置异常值的属性,如异常点的形状、大小、填充色等;
medianprops:设置中位数的属性,如线的类型、粗细等;
meanprops:设置均值的属性,如点的大小、颜色等;
capprops:设置箱线图顶端和末端线条的属性,如颜色、粗细等;
whiskerprops:设置须的属性,如颜色、粗细、线的类型等;
图10
4.饼图
在Matplotlib中使用pie()绘制饼图,其定义如下:
图11
x: (每一块)的比例,如果sum(x) > 1会使用sum(x)归一化
labels:(每一块)饼图外侧显示的说明文字
explode (每一块)离开中心距离
startangle: 起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起shadow是否阴影labeldistance label绘制位置,相对于半径的比例,如<1则绘制在饼图内侧autopct:控制饼图内百分比设置,可以使用format字符串或者format function '%1.1f'指小数点前 后位数(没有用空格补齐)
pctdistance类似于labeldistance,指定autopct的位置刻度
radius控制饼图半径
图12是一个简单的例子。
图12
5直方图
Matplotlib中使用hist()绘制直方图,图13展示了其参数列表,图14所示是一个简单的直方图。
图13
x:指定要绘制直方图的数据;
bins:指定直方图条形的个数;
range:指定直方图数据的上下界,默认包含绘图数据的最大值和最小值;
normed:是否将直方图的频数转换成频率
weights:该参数可为每一个数据点设置权重;
cumulative:是否需要计算累计频数或频率;
bottom:可以为直方图的每个条形添加基准线,默认为0;
histtype:指定直方图的类型,默认为bar,除此还有’barstacked’,‘step’,‘stepfilled’;
align:设置条形边界值的对其方式,默认为mid,除此还有’left’和’right’;
orientation:设置直方图的摆放方向,默认为垂直方向;
rwidth:设置直方图条形宽度的百分比;
log:是否需要对绘图数据进行log变换;
color:设置直方图的填充色;
label:设置直方图的标签,可通过legend展示其图例;
stacked:当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放;
图14
除了以上五种,Matplotlib还提供了许多别的函数如:
plt.axhline():绘制平行于X轴的直线
plt.axvline():绘制平行于Y轴的直线
plt.axhspan():绘制平行于X轴的区间带
plt.axhvpan():绘制平行于Y轴的区间带
plt.step():绘制梯状图
plt.violinplot():绘制小提琴图
plt.errorbar():绘制误差图
plt.fill_between():绘制填充图
#读书笔记##笔记##Python#