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原始套接字编程示例分享
Feb 21 Python
Python学习之用pygal画世界地图实例
Dec 07 Python
Python Logging 日志记录入门学习
Jun 02 Python
python 反向输出字符串的方法
Jul 16 Python
PyGame贪吃蛇的实现代码示例
Nov 21 Python
钉钉群自定义机器人消息Python封装的实例
Feb 20 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
Aug 07 Python
python爬虫 批量下载zabbix文档代码实例
Aug 21 Python
pytorch多GPU并行运算的实现
Sep 27 Python
python等差数列求和公式前 100 项的和实例
Feb 25 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 Python
Python实现老照片修复之上色小技巧
Oct 16 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
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
JavaScript入门学习书籍推荐
2008/06/12 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
javascript操作cookie
2017/01/17 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
Python中实现的RC4算法
2015/02/14 Python
改进Django中的表单的简单方法
2015/07/17 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
个人简历自我评价范文
2014/02/04 职场文书
房产委托公证书
2014/04/08 职场文书
公司董事长岗位职责
2014/06/08 职场文书
大学生就业求职信
2014/06/12 职场文书
消防宣传语大全
2015/07/13 职场文书
宾馆安全管理制度
2015/08/06 职场文书
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js