总共有19个参数之多,等号后面的是它们的默认值。重点介绍以下几个参数的意义:
1)x:指定绘图的数据。
2)explode:指定饼图某些部分的突出显示,即呈现爆炸式。
3)labels:为饼图添加标签说明,类似于图例说明。
4)colors:指定饼图的填充色。
5)autopct:自动添加百分比显示,可以采用格式化的方法显示。
6)pctdistance:设置百分比标签与圆心的距离。
7)shadow:是否添加饼图的阴影效果。
8)labeldistance:设置各扇形标签(图例)与圆心的距离。
9)startangle:设置饼图的初始摆放角度。
10)radius: 设置饼图的半径
11)counterclock:是否让饼图按逆时针顺序呈现。
12)wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等。
13)textprops:设置饼图中文本的属性,如字体大小、颜色等。
14)center:指定饼图的中心点位置,默认为原点。
15)frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置。
应用pandas模块的绘图“方法”plot。该方法提供了丰富的参数,可以针对序列和数据框绘制常见的统计图形,例如折线图、条形图、直方图、箱线图、核密度图等。当然绘制饼图是小菜一碟,简单介绍一下该方法针对序列的应用和参数含义:
Series.plot(kind='line', ax=None, figsize=None, use_index=True, title=None,
grid=None, legend=False, style=None, logx=False, logy=False,
loglog=False, xticks=None, yticks=None, xlim=None, ylim=None,
rot=None, fontsize=None, colormap=None, table=False, yerr=None,
xerr=None, label=None, secondary_y=False, **kwds)
重点介绍以下几个参数的意义:
1)kind:指定一个字符串值,用于绘制图形的类型,默认为折线图line。还可以绘制垂直条形图bar、水平条形图hbar、直方图hist、箱线图box、核密度图kde、面积图area和饼图pie。
2)ax:控制当前子图在组图中的位置。例如,在一个2×2的图形矩阵中,通过该参数控制当前图形在矩阵中的位置。
3)figsize:控制图形的宽度和高度,以元组形式传递,即(width,hright)。
4) use_index:bool类型的参数,是否将序列的行索引用作x轴的刻度,默认为True。
5)title:用以添加图形的标题。
6)grid:bool类型的参数,是否给图形添加网格线,默认为False。
7)legend:bool类型的参数,是否添加子图的图例,默认为False。
8) style:如果kind为line,该参数可以控制折线图的线条类型。
9) logx/logy:bool类型的参数,是否对x轴y轴做对数变换,默认为False。
10) loglog:bool类型的参数,是否同时对x轴和y轴做对数变换,默认为False。
11) xticks/ yticks:用于设置x轴y轴的刻度值。
12) xlim/ylim:以元组或列表的形式,设置x轴y轴的取值范围,如(0,3)表示x轴落在0~3的范围之内。
13) rot:接受一个整数值,用于旋转刻度值的角度。
14) fontsize:接受一个整数,用于控制x轴与y轴刻度值的字体大小。
15) colormap:接受一个表示颜色含义的字符串,或者Python的色彩映射对象,该参数用于设置图形的区域颜色。
16) table:该参数如果为True,表示在绘制图形的基础上再添加数据表;如果传递的是序列或数据框,则根据数据添加数据表。
17) xerr/yerr:如果kind为bar或hbar,该参数表示在条形图的基础上添加误差棒。
18) label:用于添加图形的标签。
19) secondary_y:bool类型的参数,是否添加第二个y轴,默认为False。
20) **kwds:关键字参数,该参数可以根据不同的kind值,为图形添加更多的修饰性参数(依赖于pyplot中的绘图函数)。
该方法中除了kind参数和title参数属于plot方法,其他参数都是pyplot模块中pie函数的参数,并且以关键字参数的形式调用。
pandas模块中的plot“方法”可以根据kind参数绘制不同的统计图形,而且也包含了其他各种灵活的参数。除此,根据不同的kind参数值,可以调用更多对应的关键字参数**kwds,这些关键字参数都源于pyplot中的绘图函数。
对比可以看出,两种方法框架基本相同,都要解决乱码、得到正圆、显示等,只是参数细节上略有差异。