1.双y轴绘制 关键函数:twinx()

问题在于此时图例会有两个。

# -*- coding: utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

from matplotlib import rc

rc('mathtext', default='regular')

time = np.arange(10)

temp = np.random.random(10)*30

Swdown = np.random.random(10)*100-10

Rn = np.random.random(10)*100-10

fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(time, Swdown, '-', label = 'Swdown')

ax.plot(time, Rn, '-', label = 'Rn')

ax2 = ax.twinx()

ax2.plot(time, temp, '-r', label = 'temp')

ax.legend(loc=0)

ax.grid()

ax.set_xlabel("Time (h)")

ax.set_ylabel(r"Radiation ($MJ\,m^{-2}\,d^{-1}$)")

ax2.set_ylabel(r"Temperature ($^\circ$C)")

ax2.set_ylim(0, 35)

ax.set_ylim(-20,100)

ax2.legend(loc=0)

plt.savefig('0.png')

每个句柄对应一个图例。

2. 合并图例

1) 仅使用一个轴的legend()函数

# -*- coding: utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

from matplotlib import rc

rc('mathtext', default='regular')

time = np.arange(10)

temp = np.random.random(10)*30

Swdown = np.random.random(10)*100-10

Rn = np.random.random(10)*100-10

fig = plt.figure()

ax = fig.add_subplot(111)

lns1 = ax.plot(time, Swdown, '-', label = 'Swdown')

lns2 = ax.plot(time, Rn, '-', label = 'Rn')

ax2 = ax.twinx()

lns3 = ax2.plot(time, temp, '-r', label = 'temp')

# added these three lines

lns = lns1+lns2+lns3

labs = [l.get_label() for l in lns]

ax.legend(lns, labs, loc=0)

ax.grid()

ax.set_xlabel("Time (h)")

ax.set_ylabel(r"Radiation ($MJ\,m^{-2}\,d^{-1}$)")

ax2.set_ylabel(r"Temperature ($^\circ$C)")

ax2.set_ylim(0, 35)

ax.set_ylim(-20,100)

plt.savefig('0.png')

可以看到y1轴和y2轴的图例已经合并了

2)使用figure.legend()

# -*- coding: utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(0,10)

y = np.linspace(0,10)

z = np.sin(x/3)**2*98

fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(x,y, '-', label = 'Quantity 1')

ax2 = ax.twinx()

ax2.plot(x,z, '-r', label = 'Quantity 2')

fig.legend(loc=1)

ax.set_xlabel("x [units]")

ax.set_ylabel(r"Quantity 1")

ax2.set_ylabel(r"Quantity 2")

plt.savefig('0.png')

可以看到图例位置不对,已经出界,需要使用bbox_to_anchor和bbox_transform设置。

fig.legend(loc=1, bbox_to_anchor=(1,1), bbox_transform=ax.transAxes)

# -*- coding: utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(0,10)

y = np.linspace(0,10)

z = np.sin(x/3)**2*98

fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(x,y, '-', label = 'Quantity 1')

ax2 = ax.twinx()

ax2.plot(x,z, '-r', label = 'Quantity 2')

fig.legend(loc=1, bbox_to_anchor=(1,1), bbox_transform=ax.transAxes)

ax.set_xlabel("x [units]")

ax.set_ylabel(r"Quantity 1")

ax2.set_ylabel(r"Quantity 2")

plt.savefig('0.png')

可以看到图例已经正常了。

matplotlib 双y轴绘制及合并图例

关键函数:twinx() refer to: https://www.cnblogs.com/Atanisi/p/8530693.html

Python教程:matplotlib 绘制双Y轴曲线图

前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:数据皮皮侠 双X轴的可以理解为共享y轴 ax1=ax.twiny() ...

Python科学计算技巧积累四——双y轴图像绘制

双y轴图像具有单y轴图像没有的对比效果,在MATLAB中有plotyy函数可以实现,Python的实现方式没有MATLAB那样方便,不过实现效果却也不见得差. 以往我常用的绘图命令是import ma ...

绘制复数图形和双y轴图形

clearclct=0:0.1:2*pi;x=sin(t);y=cos(t);z=x+i*y;subplot(1,3,1)plot(t,z,'r') %注:这种方式下,不论参数t,z哪个是复数,都将忽 ...

highchart 设置双Y轴坐标 双x轴坐标方法

我们的图表一旦引入了两种不同单位或者数量级相差很大的数据以后,这时候需要两种坐标对其进行计量. 下面以设置双Y轴为例, y轴坐标的参数设置成: yAxis: [{ title: { text: '坐标 ...

Jqplot使用总结之二(双Y轴)

最近需要用Jqplot做双Y轴的Chart图,首先我找到了文档上的例子并对数据做了一些调整: 1.例子展示: var s1 = [["2002-01-01", 112000], [ ...

MSChart使用之双Y轴使用

protected void SearchChart() { Chart1.ChartAreas.Clear(); Chart1.Series.Clear(); ChartArea _ChartAre ...

echarts使用笔记四:双Y轴

1.双Y轴显示数量和占比 app.title = '坐标轴刻度与标签对齐'; option = { title : { //标题 x : 'center', y : 5, text : '数量和占比图 ...

matlab画二维直方图以及双y轴坐标如何修改另一边y轴的颜色

1.首先讲一下如何用hist画二维直方图 x=[- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...

随机推荐

【代码笔记】iOS-向服务器传JSON数据的两种方式

一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

css+js定位到屏幕中间

ex:让一个div始终显示在屏幕中间 一. css:#idName{position: absolute;z-index: 999;width: ?px;margin-top: ?px;}//此处的初 ...

Oracle身份认证方式

Oracle对于普通账户和超级管理员(指sysdba和sysoper)的认证机制不一样,前者是通过数据字典,后者主要是通过操作系统验证和密码文件验证.因此一般提到操作系统认证或密码文件认证,针对的都是 ...

excel vba 当cell的值变化时 进行判断操作

示例效果: ----------- 在excel的sheet1中, 当A列的值 大于100时 ,其对应B列背景显示红色,C列显示"有数据" 否则,B列背景色正常,C列清空相应的数据 ...

从0 开始 WPF MVVM 企业级框架实现与说明 ---- 第二讲 WPF中 绑定

说到WPF, 当然得从绑定说起,这也是WPF做的很成功的一个地方,这也是现在大家伙都在抛弃使用winform的其中一个主要原因,Binding这个东西从早说到完其实都说不完的,我先就做一些基本的介绍, ...

ViewPager使用笔记

1.ViewPager.setCurrentItem(position),即使已设置动画,但是没有动画效果 原因:因为ViewPager滑动之前的时间间隔太短,可以通过反射,去修改ViewPager自 ...

JVM的参数设置与OutOfMemoryError异常关系

Java堆中存放Object对象数据,例如new出来的Object.当没有任何引用指向某对象时,该对象可能被垃圾回收.有关垃圾回收算法,可参考其他有关文章,网上很多.关于对象引用,按强弱还有强引用,软 ...

ArcGIS 网络分析[2.4] OD成本矩阵

什么是OD成本矩阵? 先不说这个东西是什么,我们还是举一个实际的例子: 现在存在3个城市北京.上海.武汉,请分析他们两两之间的通行时间. 很简单嘛!北京到上海,北京到武汉,上海到武汉都来一次最短路径分 ...

XCopy命令实现增量备份

xcopy XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件:使用时源盘符.源目标路径名.源文件名至少指定一个:选用/S时对源目录下及其子目录下的所有文件进行C ...

JavaScript常用代码书写规范

javascript 代码规范 代码规范我们应该遵循古老的原则:“能做并不意味着应该做”. 全局命名空间污染 总是将代码包裹在一个立即的函数表达式里面,形成一个独立的模块. 不推荐 , y = ; c ...

python绘图时如何添加图例_【Python】matplotlib 双y轴绘制及合并图例相关推荐

  1. python matplotlib 双y轴图像实现

    python matplotlib 双y轴图像实现案例       ʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞ ...

  2. python matplotlib 双Y轴 以及 曲线标志位置

    import numpy as np import matplotlib.pyplot as pltx = np.arange(0, 5, 0.1) # 生成一个numpy数组对象,0到5,间隔为0. ...

  3. Matplotlib双y轴+调整图例位置

    from matplotlib.pyplot import rcParams import numpy as np import matplotlib.pyplot as plt import pan ...

  4. Python画双Y轴图和设置图例的位置

    index='TSA' #放指数的文件 file=r'C:\Users\LHW\Desktop\XXX.xlsx' #p_values的文件 file1=r'C:\Users\LHW\Desktop\ ...

  5. Python实现双X轴双Y轴绘图

    Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https ...

  6. Python数据分析第十课:绘制双Y轴和改变坐标轴默认显示方式

    前面我们学习了Matplotlib的绘图流程和常用设置以及常见统计图的绘制方法. 同时,我们也发现Matplotlib绘制出的图形中会存在一些问题,例如:如何绘制双Y轴坐标系?如何去掉图形默认的边框? ...

  7. 使用Python 绘制双Y轴和误差棒柱状图

    问题描述 近期在写毕业论文,有一篇参考论文里的图感觉很合适,但是当自己想依样画葫芦的时候发现问题还没那么简单. 目标图 首先是带误差棒的柱状图.一开始我还不完全清楚这种头上顶个条的柱状图学名叫什么.只 ...

  8. python绘图时如何让点在线上

    python绘图时如何让点在线上 本文纯属自娱自乐 在使用python进行描点绘图时,出现了点被线盖住的问题,如下图所示: import matplotlib.pyplot as pltx = [1, ...

  9. Python绘图时将字体改为新罗马字体的方法

    Python绘图时文字改为新罗马字体 font = {'family': 'serif', 'serif': 'Times New Roman', 'weight': 'normal', 'size' ...

最新文章

  1. 阿里云移动数据分析服务使用教程
  2. iOS 项目中用到的一些开源库和第三方组件
  3. 近十年和近三年智能车竞赛国赛奖项在各赛区的分布分析
  4. leetcode 275. H 指数 II
  5. Git基础知识教程整理(Git基本操作)
  6. 计算与推断思维 三、Python 编程
  7. 服务器无限关机重启,服务器反复关机重启
  8. Java Socket编程(一)TCP/IP简介
  9. 路由热备份协议hsrp
  10. Primer – 支撑 GitHub 的 CSS 工具包和准则
  11. linux打包解压工具,linux下的解压,打包工具
  12. 浙大计算机考研分数线2016,2016浙江大学考研复试分数线
  13. uniapp 微信小程序 弹窗 用户授权
  14. 各大IT公司技术架构一览
  15. 基于ArduPilot Rover 4.1.5版本的汉特四驱小车搭建(1)
  16. 华为服务器网口ip配置文件,华为服务器、存储IP初始配置方法
  17. pc安装openwrt
  18. 「首席架构师推荐」一系列很棒的的浏览器端JavaScript库资源
  19. OSI和TCP/IP网络参考模型傻傻分不清?图解和各层作用详细说明
  20. 简单教学管理系统画E-R关系图

热门文章

  1. php 画直线,html5 Canvas实现画直线与设置线条的样式
  2. 智能卡 加密芯片 SMEC90ST
  3. #437 品质生活:装修历险记 | 你家的网络为啥这么卡?
  4. Docker系列五自建图床
  5. python写文件字母_不能错过!详解Python文件读写。
  6. linux 下chrome + selenium (davinci 定时任务)截图中文乱码显示□问题
  7. 楷书书法规则_记住这些“潜规则”,小楷不等于把楷书简单写小
  8. Spring Boot 2.x 基础教程: 快速入门
  9. 福特sync恢复出厂设置_新福特福克斯SYNC常用命令
  10. 生活随记 - 着急赶时间的时候记得不要拼车