前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:数据皮皮侠

双X轴的
可以理解为共享y轴

ax1=ax.twiny()
ax1=plt.twiny()

双Y轴的
可以理解为共享x轴

ax1=ax.twinx()
ax1=plt.twinx()

自动生成一个例子

x = np.arange(0., np.e, 0.01)
y1 = np.exp(-x)
y2 = np.log(x)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y1)
ax1.set_ylabel('Y values for exp(-x)')
ax1.set_title("Double Y axis")
ax2 = ax1.twinx() # this is the important function
ax2.plot(x, y2, 'r')
ax2.set_xlim([0, np.e])
ax2.set_ylabel('Y values for ln(x)')
ax2.set_xlabel('Same X for both exp(-x) and ln(x)')
plt.show()

例子:画了一个双y轴坐标的图表

# -*- coding: utf-8 -*-

#调用包
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt #读取文件
io=r'E:\工作\专项\白骑士数据验证\白骑士数据汇总表.xlsx'
yinka=pd.read_excel(io,sheet_name='YINKA_sample')
bqs=pd.read_excel(io,sheet_name='BQS_result')
yinka_bqs=pd.merge(yinka,bqs,left_on='no',right_on='no',how='inner') #绘图
fig,ax=plt.subplots(1,1,figsize=(20, 300))
ax.grid() #画网格
x=total.index-1
#为什么+1,因为对不齐,所以使用时根据情况编写
y=total['var1']
ax.plot(x,y,'k--o',alpha=0.5) #画折线图
ax.set_xlim([0,16])
#设置x轴的取值范围 这个可以让x轴与y轴的起点一致
ax.set_xticks(np.arange(0,16)) #设置x轴的刻度范围
ax.set_xticklabels(np.arange(0,16),rotation=30)
#设置x轴上的刻度 ax.set_ylim([0,1800]) #同理y轴数值范围
ax.set_yticks(range(0,1800,300))#设置y轴的刻度范围
ax.set_yticklabels(range(0,1800,300))#设置y轴上的刻度 ax.legend(loc='upper left') #设置ax子图的图例(legend)
#新知识点
for a,b in zip(x,y): #设置注释 zip函数是对应关系
ax.text(a,b,b,ha='center',va='bottom',fontsize=15)
#重点
ax1=ax.twinx()
#这个是能够实现双y轴的重点,共享x轴;还有一种是双x轴的图表换成ax.twiny()
y1=total[['adopt','reject']]
y1.plot.bar(ax=ax1,alpha=0.5)
#这个是matplotlib中条形图的绘制方法,如果使用seaborn绘制方法使用sns.barplot()函数,需要调整很多细节
#这里只设置了y轴的刻度,x轴的刻度设置了一下偶尔会出现失败,值得注意的是要将数据对齐
ax1.set_ylim([0,1800])
ax1.set_yticks(range(0,1800,300))
ax1.set_yticklabels(range(0,1800,300))
for e,f,w in zip(data_.index,data_[0],data_[1]):
ax1.text(e-1,f,f,ha='center',va='bottom',fontsize=10,color='b')
ax1.text(e-1,w,w,ha='center',va='bottom',fontsize=10,color='g')
ax1.legend(loc='best')
plt.show() #养成习惯这个最好写一下#
#保存图片
plt.savefig('path') #图表输出到本地

结果显示:

喜欢的朋友欢迎关注小编,除了分享技术文章之外还有很多福利,私信“资料”可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。

 

最新文章

  1. JDBC连接实例
  2. Varnish简介
  3. netcore 控制台中文乱码
  4. leetcode 118 Pascal's Triangle ----- java
  5. PHP include()和require()方法的区别
  6. 远离DoS攻击 Windows Server 2016发布DNS政策
  7. angularJS之ng-repeat
  8. 最简单方法将项目上传到github
  9. 远程链接mysql
  10. webpack4 系列教程(十四):Clean Plugin and Watch Mode
  11. Uboot 常用指令
  12. LeetCode 292 Nim Game 解题报告
  13. python全栈 字典数据类型相关知识及操作
  14. html5 canvas贝塞尔曲线篇(下)
  15. python之模块copy_reg(在python3中为copyreg,功能基本不变)
  16. JAVA NIO学习记录1-buffer和channel
  17. 错误处理Cannot load JDBC driver class 'oracle.jdbc.drive
  18. PHP内存溢出 Allowed memory size of 解决办法
  19. Ubuntu 安装 Kubernetes
  20. linux定时任务cron 安装配置

热门文章

  1. poj3308 最小点权覆盖
  2. MyBatis通过注解方式批量添加、修改、删除
  3. js数组对象的一些常用方法
  4. web自动化之文件上传操作
  5. S32K142学习记录_SDK手动导入
  6. [工具推荐]004.EXE签名工具SignTool使用教程
  7. word修改页眉使本页的页眉与别的页不一样
  8. 关于oauth安全
  9. jchdl - RTL实例 - AndReg
  10. 【Linux】CentOS 7安装与使用,安装jdk1.8,安装mysql