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 字典(dict)遍历的四种方法性能测试报告
Jun 25 Python
跟老齐学Python之不要红头文件(1)
Sep 28 Python
Python性能优化的20条建议
Oct 25 Python
Python用户推荐系统曼哈顿算法实现完整代码
Dec 01 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
python实现微信小程序自动回复
Sep 10 Python
python3 map函数和filter函数详解
Aug 26 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
pycharm 更改创建文件默认路径的操作
Feb 15 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 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之COOKIE支持详解
2010/09/20 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
Javascript 继承实现例子
2009/08/12 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
javascript实现汉字转拼音代码分享
2015/04/20 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
vue中实现弹出层动画效果的示例代码
2020/09/25 Javascript
python选择排序算法的实现代码
2013/11/21 Python
Python调用C++程序的方法详解
2017/01/24 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
pytorch中的上采样以及各种反操作,求逆操作详解
2020/01/03 Python
在tensorflow中设置保存checkpoint的最大数量实例
2020/01/21 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
亚马逊印度站:Amazon.in
2017/10/15 全球购物
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
责任胜于能力演讲稿
2014/05/20 职场文书
正风肃纪查摆剖析材料
2014/10/10 职场文书