python matplotlib 坐标轴,matplotlib 双坐标轴
本文主要介绍如何使用python的matplotlib绘制双Y轴图像。文中有非常详细的代码示例,对正在学习python的朋友很有帮助。有需要的可以参考一下。
00-1010双Y轴图介绍;实施思路;代码风格与第二种相同。
目录
顾名思义,双轴图在一个图中有两个y轴。这个图形主要用来表示两个因变量和一个自变量之间的关系,两个因变量的数值单位不同。如果要展示公司销售业绩和成本在不同月份的变化,可以用双Y轴图来展示。(因变量销售量和成本有不同的单位)。
双Y轴图简介
绘制双Y轴的思路也是采用了matplotlib的面向对象绘图的思路。在不指定位置的情况下,在画布上创建两个坐标系,第一个坐标系是正常创建的,第二个坐标系是通过专有的twinx()方法创建的。
那么两个坐标系的位置重合。第一个坐标系轴在左边,twinx()方法创建的坐标系在右边。因为有两个Y轴,所以在操作Y轴属性时需要面向对象。如果单纯使用plt.ylabel()等方法,只能对左轴进行操作,不能对右轴进行操作。
下面举个例子吧,首先引导套餐,准备资料。这里准备一组销售数据,计算其增长率,显示在右轴。
实现思路
实现代码
具体代码如下:
将matplotlib.pyplot作为plt导入
#生成一组数据
x=范围(7)
y1=[2000,1600,3000,6200,7000,9800,11000]
y2=[1]
对于范围内的I(len(y1)):
if i 1==len(y1):
破裂
rate=round(y1[i 1]/y1[i] - 1,2)
y2.append(比率)
fig=plt.figure(figsize=(10,8),facecolor=#ff33ff )
#字体使用斜体。
PLT . RC params[ font . sans-serif ]=[ STK aiti ]
PLT . RC params[ axes . unicode _ MINUS ]=False
#背景颜色为cc00ff
PLT . RC params[ axes . face color ]= # cc 00 ff
ax1=fig.add_subplot(111)
Plt.title(销售量及其增长率说明,color= # ffff00 ,fontsize=25,y=1.04)
Plt.x门票(x,[一月,二月,三月,四月,五月,六月,七月],color=#ffff00 ,fontsize=15)
Plt.xlabel (month ,color=#ff0033 ,fontsize=15)
plt.yticks(color=#B22222 ,fontsize=15)
ax1.bar(x,y1,color=#33ff66 ,label=left )
Ax1.set_ylabel(销售量(件数),color=#66ff00 ,fontsize=20)
#添加坐标轴
ax2=ax1.twinx()
ax2.plot(x,y2,color=#3399ff ,linestyle= -,marker=o ,linewidth=2)
2.ax2.set_ylabel(增长率,color=#66ff00 ,fontsize=20)
ax2.tick_params(axis=y ,color=green ,labelsize=15,labelcolor=#B22222 )
对于邮政编码为(x,y2):的a和b
plt.text(a,b 0.02, %.2f % b,ha=center ,va=bottom ,fontsize=15,color=red )
plt.show()
图像效果如下:
样式一
具体实现代码如下
%matplotlib内联
将matplotlib.pyplot作为plt导入
随机导入
进口熊猫作为pd
将matplotlib作为mpl导入
mpl . RC params[ font . sans-serif ]=[宋芳] #指定默认字体
mpl . RC params[ axes . unicode _ MINUS ]=false #解决保存的图像显示为带负号-的正方形的问题
#数据准备
日期=[一月,二月,三月,四月,五月,六月,七月,八月]
sales=[对于范围(8)中的I,为random.randint(10000,25000)]
cost=[int(I/100)-random . randint(1,20) for i in sales]
Df=pd。data frame(data={ sales : sales, cost 3360 cost},index=date)
#绘制第一个Y轴
fig=plt.figure(figsize=(20,8),dpi=80)
ax=fig.add_subplot(111)
1=ax.plot (df.index,df [销售],marker=o ,label=销售)
Ax.set_title(双y轴图形,size=20)
Ax.set_xlabel (time ,size=18)
Ax.set_ylabel(销售(件数),size=18)
对于df[销售]中的I,j。物品():
ax.text(i,j 20,str(j),va=bottom ,ha=center ,size=15)
#绘制另一个Y轴
ax1=ax.twinx()
Lin=ax1.plot (df.index,df [cost],marker= o ,color= red ,label= cost )
Ax1.set_ylabel(成本(元),size=18)
#合并图例
lins=lin1 lin2
labs=[l.get_label() for l in lins]
ax.legend(lins,labs,loc=upper left ,fontsize=15)
plt.show()
图像效果如下:
关于Python Matplotlib绘制双Y轴图像的示例代码,本文到此结束。有关Python Matplotlib的双Y轴图像的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望你以后能支持热门的IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。