python 画柱状图折线图

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

调用的是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设置的很小可以是最高的柱
不会紧挨着画框。



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值