Python matplotlib 绘制双Y轴曲线图的示例代码


Posted in Python onJune 12, 2020

Matplotlib简介

Matplotlib是非常强大的python画图工具
Matplotlib可以画图线图、散点图、等高线图、条形图、柱形图、3D图形、图形动画等。

Matplotlib安装

pip3 install matplotlib#python3

双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()

Python matplotlib 绘制双Y轴曲线图的示例代码

例子:画了一个双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 matplotlib 绘制双Y轴曲线图的示例代码

总结

到此这篇关于Python matplotlib 绘制双Y轴曲线图的文章就介绍到这了,更多相关Python matplotlib 曲线图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python是编译运行的验证方法
Jan 30 Python
Python实现各种排序算法的代码示例总结
Dec 11 Python
Python的语言类型(详解)
Jun 24 Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
Python实现的网页截图功能【PyQt4与selenium组件】
Jul 12 Python
Python数据集切分实例
Dec 08 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
python实现五子棋小游戏
Mar 25 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
Python Charles抓包配置实现流程图解
Sep 29 Python
用python制作个视频下载器
Feb 01 Python
keras的siamese(孪生网络)实现案例
Jun 12 #Python
基于python实现模拟数据结构模型
Jun 12 #Python
Python-for循环的内部机制
Jun 12 #Python
Python Scrapy图片爬取原理及代码实例
Jun 12 #Python
Python Scrapy多页数据爬取实现过程解析
Jun 12 #Python
Selenium自动化测试工具使用方法汇总
Jun 12 #Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 #Python
You might like
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
PHP.vs.JAVA
2016/04/29 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
python中的错误处理
2016/04/10 Python
实例详解Python装饰器与闭包
2019/07/29 Python
python实现自动清理重复文件
2020/08/24 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
银行自荐信范文
2013/10/07 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
物业管理专业自荐信
2014/07/01 职场文书
三严三实对照检查材料
2014/08/25 职场文书
2015年企业新年寄语
2014/12/08 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
大学校园招聘会感想
2015/08/10 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技
python+opencv实现目标跟踪过程
2022/06/21 Python