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登录QQ邮箱发信的实现代码
Feb 10 Python
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
Python中Iterator迭代器的使用杂谈
Jun 20 Python
分享一下如何编写高效且优雅的 Python 代码
Sep 07 Python
解决Python3 被PHP程序调用执行返回乱码的问题
Feb 16 Python
Python3实现的简单三级菜单功能示例
Mar 12 Python
Django模板语言 Tags使用详解
Sep 09 Python
python多线程并发及测试框架案例
Oct 15 Python
如何把外网python虚拟环境迁移到内网
May 18 Python
Pandas的Apply函数具体使用
Jul 21 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
Nov 05 Python
Pycharm连接远程服务器并远程调试的全过程
Jun 24 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 session 错误
2009/05/21 PHP
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
Vue render深入开发讲解
2018/04/13 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
酒店中秋节促销方案
2014/01/30 职场文书
作风建设整改方案
2014/10/27 职场文书
个人道歉信大全
2019/04/11 职场文书