首页 > 编程知识 正文

python在直方上画折线,python柱状上显示折线

时间:2023-05-05 09:34:46 阅读:277036 作者:3708

,注意:条形图是用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的; 直方图是用面积表示各组频数的多少

1、直方图hist()函数

hist()函数: 直方图的参数只有一个X
参数说明: normed=True:将值进行归一化处理,形成概率密度,默认值为False color: 修改颜色
设置直方图的方向:
orientation=‘horizontal’: 水平方向
默认orientation=‘vertical’ 垂直方向

#-- coding:UTF-8 --import matplotlib.pyplot as pltimport numpy as npimport pandas as pd#直方图x=np.random.randint(0,10,10)plt.hist(x,density=True,orientation='vertical',color='b')#垂直方向,horizencal:水平plt.show()

运行如下:

2、条形图bar(),barh()

bar(),barh()语法如下:
对象 .bar(left, height, idth=0.8, bottom=None, hold=None, data=None, **kwargs)


2.1

import matplotlib.pyplot as pltimport numpy as npx = np.linspace(0,5,5)y = np.random.randint(0,20,size=5)axes = plt.subplot(1,2,1)#1x2的区域,一行两列axes.bar(x,y)#垂直条形图axes2 = plt.subplot(1,2,2)axes2.barh(x,y)#水平条形图plt.show()

运行如下:

2.2添加标题,x轴,y轴标签
把以上对应代码改为:

'''条形图 bar()、barh()(条形图有两个参数x,y)'''x = np.linspace(0,5,5)y = np.random.randint(0,20,size=5)'''垂直条形图'''axes = plt.subplot(2,1,1)#2x1的区域,两行一列axes.bar(x,y)axes.set_title('one')axes.set_xlabel('x')axes.set_ylabel('y')'''水平条形图'''axes2 = plt.subplot(2,1,2)axes2.barh(x,y)axes2.set_title('tow')plt.show()

运行结果:

2.3多个子图

import numpy as npx=np.linspace(0,5,5)y=np.random.randint(0,20,size=5)axes=plt.subplot(2,2,1)axes.bar(x,y,color='b')#垂直axes1=plt.subplot(2,2,2)axes1.barh(x,y,color='r')#水平axes2=plt.subplot(2,2,3)axes2.bar(x,y,color='g')axes3=plt.subplot(2,2,4)axes3.barh(x,y,color='b')plt.show()

运行如下:

解释:subplot(x,y,z):
x,y组成x行y列的图形区域,z是代表位置,从左上角开始到右下角

plt.subplot(2,2,1)#2x2,两行两列,对应第一个图,左上角plt.subplot(2,2,2)#2x2,对应第二个图,右上角plt.subplot(2,2,3)#2x2,对应第三个图,左下角plt.subplot(2,2,4)#2x2,对应第四个图,右下角plt.show()

运行结果:

import matplotlib.pyplot as pltplt.subplot(3,2,1)plt.subplot(3,2,2)plt.subplot(3,2,3)plt.subplot(3,2,4)plt.subplot(3,2,5)plt.subplot(3,2,6)plt.show()

运行结果:

3、折线图plot()

import matplotlib.pyplot as plty=np.random.randint(0,50,10)x=range(len(y))y1=np.random.randint(0,50,10)x1=range(len(y1))y2=np.random.randint(0,50,10)x2=range(len(y1))plt.figure()plt.plot(x,y,'r',label='y')# 在绘制时设置lable(设置线条的类型), 逗号是必须的#l1,=plt.plot(x,y,'r',label='parabola',linewidth = 1.0, linestyle = '--')#plt.plot(x,y,'r--',label='y',linewidth = 1.0)#l2,=plt.plot(x1,y1,'b',label='line')plt.plot(x1,y1,'b',label='y1')plt.plot(x2,y2,'g',label='y2')plt.xlabel('x')plt.ylabel('y')plt.title('one')#显示图例,当显示多个图例时,在plt.plot(),添加label参数才显示对应的图例plt.legend(loc='upper right')#或者plt.legend(handles =[l1,l2],labels =['y','y1'],loc='upper right')#显示图例#或者plt.legend[l1,l2],['y','y1'],loc='upper right')#显示图例plt.show()

运行如下:

legend()的参数中,loc显示的位置:

‘best’ : 0, (only implemented for axes legends)(自适应方式)
‘upper right’ : 1,
‘upper left’ : 2,
‘lower left’ : 3,
‘lower right’ : 4,
‘right’ : 5,
‘center left’ : 6,
‘center right’ : 7,
‘lower center’ : 8,
‘upper center’ : 9,
‘center’ : 10,

4、饼图**** pie()函数

pie() 参数说明:
1)labels=[’’] 设置相对应数据的标签
2) labeldistance:设置标签距离圆心的距离:labeldistance:值越大离图就越远
3)autopct=’%1.1f%%’ : 设置饼图上显示数据 (注意:最外面有两个%转化为百分比,里面1.1f%即保留一位小数加%,1.2f 即保留两位小数 )
4)pctdistance : 设置比例值文字距离圆心的距离,值越大离圆心就越远
5) explode = () : 参数设置每一块顶点距离圆心的长度里面的值的数量和数据是相同的数量,不想设置时直接给个0(注:用小括号括起来 )
6) colors 参数设置每一块的颜色
7) shadow : 设置是否绘制阴影
8) startangle : 设置饼图旋转的度数 (逆时针旋转)

import matplotlib.pyplot as pltimport numpy as npp=np.array([0.6,0.2,0.1])axes=plt.subplot(1,2,1)axes.pie(p,labels=['fruit','foot','other'],autopct='%1.1f%%',pctdistance=0.8,startangle=60)axes.axis('equal')#让饼图更圆axes.set_title('one')p1=np.array([0.6,0.15,0.1,0.15])axes1=plt.subplot(1,2,2)axes1.pie(p1,labels=['china','USA','UK','japan'],labeldistance=1.1,autopct='%1.2f%%',explode=(0.1,0.1,0.1,0.1),shadow=True)axes1.axis('equal')axes1.set_title('two')plt.show()

运行代码如下:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。