python matplotlib 坐标轴,matplotlib 双坐标轴

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: