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的垃圾回收机制深入分析
Jul 16 Python
Python文件和目录操作详解
Feb 08 Python
Python实现的单向循环链表功能示例
Nov 10 Python
python opencv3实现人脸识别(windows)
May 25 Python
详解【python】str与json类型转换
Apr 29 Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 Python
python批量处理txt文件的实例代码
Jan 13 Python
浅谈python之自动化运维(Paramiko)
Jan 31 Python
解决TensorFlow模型恢复报错的问题
Feb 06 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
May 15 Python
keras 简单 lstm实例(基于one-hot编码)
Jul 02 Python
Django contrib auth authenticate函数源码解析
Nov 12 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
PHP中PDO基础教程 入门级
2011/09/04 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
php图片裁剪函数
2018/10/31 PHP
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
php使用递归与迭代实现快速排序示例
2014/01/23 Python
在Python中使用元类的教程
2015/04/28 Python
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
python制作简单五子棋游戏
2019/06/18 Python
基于python爬取梨视频实现过程解析
2020/11/09 Python
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
省文明单位申报材料
2014/05/08 职场文书
债务授权委托书范本
2014/10/17 职场文书
财产分割协议书范本
2014/11/03 职场文书
党员评议自我评价
2015/03/03 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
创业计划书之养殖业
2019/10/11 职场文书