Python matplotlib绘制条形图及实例(提高版)
本文已参与「新人创作礼」活动,一起开启掘金创作之路。
绘制多个条形图对比
- 代码如下:
##绘制多个条形图
from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF')
a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]
bar_width=0.2
x_14 = list(range(len(a)))
x_15 = [i+bar_width for i in x_14]
x_16 = [i+bar_width for i in x_15]
plt.bar(x_14, b_14, width=0.2, label="9月14日")
plt.bar(x_15, b_15, width=0.2, label="9月15日")
plt.bar(x_16, b_16, width=0.2, label="9月16日")
##设置x轴刻度
plt.xticks(x_15, a, fontproperties=my_font)
plt.legend(prop=my_font)
plt.show()
- 结果如图所示:
绘制条形图要点
(1)柱状图bar()函数参数
bar()的构造函数:bar(x,height, width,align='center')
- x:下标列表,比如上文中的a相当于这里的x。
- height:柱子高度值列表,即x轴对应的高度数据,比如上文中的b相当于这里的height。
- width:每个柱子的宽度。可以指定一个固定值,则所有柱子宽度相同;或者设置一个列表,令每个柱子宽度不同。
- align:两种柱子对齐方式:
center和edge,默认值是center。center表示每根柱子是根据下标来对齐;edge则表示每根柱子全部以下标为起点,显示到下标右边。
其他可选参数有:
- color:每根柱子呈现的颜色。
- edgecolor:每根柱子边框颜色。
- linewidth:每根柱子的边框宽度。如果没有设置该参数,将使用默认宽度
linewidth = 0,即默认是没有边框的。 - tick_label:每根柱子上显示的标签,默认是没有内容。
- ... ...
(2)柱状图图注参数
- 设置x轴刻度以及中文字体:
plt.xticks(x, labs, fontproperties=my_font),其中my_font代指指定的中文字体。 - 设置不同柱状图的图注:
plt.legend(prop=my_font),其中my_font代指指定的中文字体,英文字体可以不用单独设置。