前言
利用Python
绘制常见的统计图形,例如条形 图、饼图、直方图、折线图、散点图等,通过这些常用图形的展现,将 复杂的数据简单化。这些图形的绘制可以通过matplotlib
模块、
pandas
模
块或者
seaborn
模块实现。
饼图
import matplotlib.pyplot as plt
plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False)
-
x :指定绘图的数据。
-
explode :指定饼图某些部分的突出显示,即呈现爆炸式。
-
labels :为饼图添加标签说明,类似于图例说明。
-
colors :指定饼图的填充色。
-
autopct:自动添加百分比显示,可以采用格式化的方法显示。autopct='%.1f%%'
-
pctdistance :设置百分比标签与圆心的距离。
-
shadow :是否添加饼图的阴影效果。
-
labeldistance :设置各扇形标签(图例)与圆心的距离。
-
startangle :设置饼图的初始摆放角度。
-
radius :设置饼图的半径大小。
-
counterclock :是否让饼图按逆时针顺序呈现。
-
wedgeprops :设置饼图内外边界的属性,如边界线的粗细、颜色等。
-
textprops :设置饼图中文本的属性,如字体大小、颜色等。
-
center :指定饼图的中心点位置,默认为原点。
-
title :为饼图添加标题
-
frame :是否要显示饼图背后的图框,如果设置为 True 的话,需 要同时控制图框x 轴、 y 轴的范围和饼图的中心位置。
其他:
#中文乱码和坐标轴负号的处理
plt.rcParams [ 'font.sans-serif'] = ['Microsoft YaHei']plt.rcParams [ 'axes.unicode_minus']=False
#将横、纵坐标轴标准化处理,确保饼图是一个正圆,否则为椭圆plt.axes(aspect='equal ')
-
如果绘制的图形中涉及中文及数字中的负号,都需要通过 rcParams进行控制。
-
由于不加修饰的饼图更像是一个椭圆,所以需要 pyplot 模块中的 axes函数将椭圆强制为正圆。
import pandas as pdSeries.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)
- kind:指定一个字符串值,用于绘制图形的类型,默认为折线图
-
line: 还可以绘制垂直条形图 bar 、水平条形图 hbar 、直方图 hist 、箱线图 box 、核密度图 kde 、面积图 area 和饼图 pie 。
-
ax :控制当前子图在组图中的位置。例如,在一个 2×2 的图形矩阵中,通过该参数控制当前图形在矩阵中的位置。
-
figsize :控制图形的宽度和高度,以元组形式传递,即 (width,hright)。
-
use_index : bool 类型的参数,是否将序列的行索引用作 x 轴的刻 度,默认为True 。
-
title :用以添加图形的标题。
-
grid : bool 类型的参数,是否给图形添加网格线,默认为 False 。
-
legend : bool 类型的参数,是否添加子图的图例,默认为 False 。
-
style :如果 kind 为 line ,该参数可以控制折线图的线条类型。
-
logx : bool 类型的参数,是否对 x 轴做对数变换,默认为 False 。
-
logy : bool 类型的参数,是否对 y 轴做对数变换,默认为 False 。
-
loglog : bool 类型的参数,是否同时对 x 轴和 y 轴做对数变换,默 认为False 。
-
xticks :用于设置 x 轴的刻度值。
-
yticks :用于设置 y 轴的刻度值。
-
xlim :以元组或列表的形式,设置 x 轴的取值范围,如 (0,3) 表示 x 轴落在0 ~ 3 的范围之内。
-
ylim :以元组或列表的形式,设置 y 轴的取值范围。
-
rot :接受一个整数值,用于旋转刻度值的角度。
-
fontsize :接受一个整数,用于控制 x 轴与 y 轴刻度值的字体大小。
-
colormap :接受一个表示颜色含义的字符串,或者 Python 的色彩 映射对象,该参数用于设置图形的区域颜色。
-
table :该参数如果为 True ,表示在绘制图形的基础上再添加数据 表;如果传递的是序列或数据框,则根据数据添加数据表。
-
yerr :如果 kind 为 bar 或 hbar ,该参数表示在条形图的基础上添加 误差棒。
-
xerr :含义同 yerr 参数。 label :用于添加图形的标签。
-
secondary_y : bool 类型的参数,是否添加第二个 y 轴,默认为 False。
-
**kwds :关键字参数,该参数可以根据不同的 kind 值,为图形添加更多的修饰性参数(依赖于 pyplot 中的绘图函数)。
条形图
import matplotlib.pyplot as plt
plt.bar(left, height, width=0.8, bottom=None, color=None, edgecolor=None, linewidth=None, tick_label=None, xerr=None, yerr=None, label = None, ecolor=None, align, log=False, **kwargs)
-
left :传递数值序列,指定条形图中 x 轴上的刻度值。
-
height :传递数值序列,指定条形图 y 轴上的高度。
-
width :指定条形图的宽度,默认为 0.8
-
bottom :用于绘制堆叠条形图。
-
color :指定条形图的填充色。
-
edgecolor :指定条形图的边框色。
-
linewidth :指定条形图边框的宽度,如果指定为 0 ,表示不绘制 边框。
-
tick_label :指定条形图的刻度标签。
-
xerr :如果参数不为 None ,表示在条形图的基础上添加误差棒。
-
yerr :参数含义同 xerr 。
-
label :指定条形图的标签,一般用以添加图例。
-
ecolor :指定条形图误差棒的颜色。
-
align :指定 x 轴刻度标签的对齐方式,默认为 center ,表示刻度标
-
签居中对齐,如果设置为 edge ,则表示在每个条形的左下角呈现 刻度标签。
-
log : bool 类型参数,是否对坐标轴进行 log 变换,默认为 False 。
-
**kwargs :关键字参数,用于对条形图进行其他设置,如透明度 等。
-
#为每个条形图添加数值标签
-
for x,y in enumerate(GDP.GDP):
plt.text(x,y+0.1,'%s"%round(y, 1) ,ha=' center')