【有书共读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。

 
                                                                            图1


 
                                                                   图2
为了使柱形图更丰富多彩,我们还需要对其进行修饰,在上述的基础上添加以下属性:

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#
全部评论

相关推荐

1 3 评论
分享
牛客网
牛客企业服务