您的位置:首页 > 编程语言 > Python开发

python 画柱状图折线图

2017-08-30 21:56 120 查看
记录一下这两天画图遇到的问题和解决方法调用的是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 mplmpl.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 pltfrom pylab import mplmpl.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设置的很小可以是最高的柱
不会紧挨着画框。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: