Matplotlib 条形图,条形图非常常见,它与直方图极其相似,只不过x
轴表示的不是数值而是类别,使用matplotlib的bar()
函数就可以生成简单的条形图。
阅读本章内容可以先了解极客教程的前面几个章节介绍的Matplotlib
相关知识:直方图,线性图,添加图例。
绘制条形图
如下所示,几行代码就可以绘制出条形图。
import matplotlib.pyplot as plt
index = [0,1,2,3,4]
values = [5,7,3,4,6]
plt.bar(index, values)
plt.title("geek-docs.com", fontsize=20, fontname="Times New Roman")
plt.show()
输出结果如下所示:
由于每个长条对应的是一种类别,最好用刻度标签标明其类别,方法是把表示各个类别的字符串传递给xticks()
参数。至于刻度标签的位置,你需要把表示它们在x轴上位置的数值列表传递给
xticks()
函数,作为它的第一个参数。如下所示:
import matplotlib.pyplot as plt
index = [0,1,2,3,4]
values = [5,7,3,4,6]
plt.bar(index, values)
plt.title("geek-docs.com", fontsize=20, fontname="Times New Roman")
plt.xticks(index,['A', 'B', 'C', 'D', 'E'])
plt.show()
输出结果如下所示:
添加图例
极客教程专门有一章节介绍添加图例,本文添加方式不太一样,是直接通过传递参数来实现。bar()
函数还可以传入其他参数实现特定功能,把标准差的列表传给yerr
参数,就能添加标准差。
error_kw
:用于接收其他可用于显示误差线的关键字参数。eColor
参数指定误差线的颜色,capsize
参数指定误差线两头横线大的宽度。alpha
:控制彩色条形图的透明度,取值范围是0-1,0表示完全透明,随alpha
的增加,对象逐渐清晰起来,到1
时不透明。label
:为图表中的序列指定名称。
import matplotlib.pyplot as plt
import numpy as np
index = np.arange(5)
values = [5,7,3,4,6]
std1=[0.8, 1, 0.4, 0.9, 1.3]
plt.title("geek-docs.com", fontsize=20, fontname="Times New Roman")
plt.bar(index, values, yerr=std1,error_kw={'ecolor':'0.1', 'capsize':6}, alpha=0.7, label='First')
plt.xticks(index,['A', 'B', 'C', 'D', 'E'])
plt.legend(loc=2)
plt.show()
输出结果如下:
极客教程相关文章推荐:
Matplotlib 直方图
Matplotlib 线性图
Matplotlib 添加图例
Matplotlib 添加文本