参考文章:https://blog.csdn.net/hohaizx/article/details/79101322
我用下面的代码画的
import matplotlib.pyplot as plt
import matplotlib
price = [39.5, 39.9, 45.4, 38.9, 33.34]
"""
绘制水平条形图利用方法barh
range(5)就是y轴,如果想增大条形图之间的距离,可以使用range(0,10,2).。间距就变成了2倍。
price是x轴,height是每个条形的宽度,color和alpha是用来设置颜色的。
"""
plt.barh(range(5), price, height=0.7, color='steelblue', alpha=0.8) # 从下往上画
plt.yticks(range(5), ['亚马逊', '当当网', '中国图书网', '京东', '天猫']) #y轴显示的坐标
plt.xlim(30,47) #x轴的刻度
plt.xlabel("价格") #x轴标签
plt.title("不同平台图书价格") #整个图的标题
for x, y in enumerate(price):
plt.text(y + 0.2, x - 0.1, '%s' % y)
plt.savefig('text1.png',bbox_inches='tight') #见注释1
plt.show()
注释1:使用savefig保存图片时,当yticks或者title等过长或者过大的时候,会使图例保存不完整。原因在于输出的“图”(并不包含图例)是在画布中间的,而输出时,“图”与图例都会一块输出,只有“图”是居中的。所以图例只能占据画布边缘,所以导致图例输出的不完整。
加上 box_inches=‘tight’ 就可以使图例输出完整。