python 画柱状图折线图

xiaoxiao2021-02-27  197

记录一下这两天画图遇到的问题和解决方法

调用的是matplotlib.pyplt

折线图

最简单的

import matplotlib x=[5,1,3,4] y=[6,7,8,5] plt.plot(x,y) plt.show()结果如下图:

想要把每个点突出一下改进一下: plt.plot(x,y,'o-',color='r') 'o-'可以写成'o--''o-.''*-'等可以改变点的形状线条,color可以改变折线的颜色,比如这样 同一个坐标系想画多条线: x=[1,2,3,4] y=[3,5,8,9] y1=[1,8,3,2] plt.plot(x,y,'*-',color='b') plt.plot(x,y1,'*-',color='b') 加横纵坐标含义及标题: 显示不出汉字?加两行 from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei']以前版本是在汉子前加u即u'x轴',现在的版本这样就可以

想添加标注?改进:

x=[1,2,3,4] y=[3,5,8,9] y1=[1,5,6,8] plt.plot(x,y,'*-',label='男性',color='b') plt.plot(x,y1,'*-',label='女性',color='r') plt.xlabel('x轴') plt.ylabel('y轴') plt.title('标题') plt.legend() label是标注的具体信息,legend是标注操作

相加网格加一句就可以实现

plt.grid()

必杀技!找了好久才找到给折线图某一点想加他的值在图上显示

plt.annotate('9',xy=(4,9),xytext = (4, 8.6)) 想给蓝色线的最高点加上他的值,’9‘为要加的值,xy是标记的点的位置,xytext是标记数值放的位置 plt.savefig('24.png')用这一句就可以存下来了,他不支持存成jpg完整import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] x=[1,2,3,4] y=[3,5,8,9] y1=[1,5,6,8] plt.plot(x,y,'*-',label='男性',color='b') plt.plot(x,y1,'*-',label='女性',color='r') plt.xlabel('x轴') plt.ylabel('y轴') plt.title('标题') plt.legend() plt.grid() plt.annotate('9',xy=(4,9),xytext = (4, 8.6)) plt.show() 柱状图 直接上个完整版 def autolabel(rects): for rect in rects: height = rect.get_height() plt.text(rect.get_x()+rect.get_width()/2-0.2,1.01* height, '%s' % float(height)) rects =plt.bar(left = (0),height = (35),color=('g'),width=0.35,align='center',yerr=0.0000001) rects1 =plt.bar(left = (1),height = (22),color=('y'),width=0.35,align='center',yerr=0.0000001) rects2 =plt.bar(left = (2),height = (41),color=('r'),width=0.35,align='center',yerr=0.0000001) rects3 =plt.bar(left = (3),height = (83),color=('b'),width=0.35,align='center',yerr=0.0000001) plt.xlabel('x') plt.xticks((0,1,2,3),('少年','青年','壮年','老年')) plt.ylabel('y') plt.title('标题') autolabel(rects) autolabel(rects1) autolabel(rects2) autolabel(rects3) plt.legend((rects,rects1,rects2,rects3),('少年','青年','壮年','老年')) plt.show()函数是用来取柱状图的高并标记出来,xticks从左边开始每一个柱状图的标注,legend整体标注,其中的元素必须是元组,plt.bar是画柱状图的操作,left是这个柱状图开始的点,height为赋的值,align使标注居中,yerr设置的很小可以是最高的柱不会紧挨着画框。

转载请注明原文地址: https://www.6miu.com/read-14102.html

最新回复(0)