matplotlib 双y轴绘制及合并图例的实现代码

 更新时间:2022年10月21日 10:19:20   作者:华小电  
这篇文章主要介绍了matplotlib 双y轴绘制及合并图例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。

Matplotlib 可以用来绘制各种静态,动态,交互式的图表。

Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。

Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。

下面看下matplotlib 双y轴绘制及合并图例。

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)

合并图例

# -*- 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)

使用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, 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")

到此这篇关于matplotlib 双y轴绘制及合并图例的文章就介绍到这了,更多相关matplotlib 双y轴内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 对python 中re.sub,replace(),strip()的区别详解

    对python 中re.sub,replace(),strip()的区别详解

    今天小编就为大家分享一篇对python 中re.sub,replace(),strip()的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python列表倒序的几种方法(切片、reverse()、reversed())

    python列表倒序的几种方法(切片、reverse()、reversed())

    本文主要介绍了python列表倒序的几种方法(切片、reverse()、reversed()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • python模拟登录并且保持cookie的方法详解

    python模拟登录并且保持cookie的方法详解

    模拟登录相信对大家来说都不陌生,下面这篇文章主要给大家介绍了关于python模拟登录并且保持cookie的方法,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • Python中出现"No module named 'requests'"的图文解决办法

    Python中出现"No module named 'requests'"

    这篇文章主要给大家介绍了关于Python中出现"No module named 'requests'"的解决办法,"No module named requests"是Python报错提示,意味着你在使用某个Python程序或脚本时,没有找到名为requests的模块,需要的朋友可以参考下
    2023-11-11
  • 如何使用Python发送HTML格式的邮件

    如何使用Python发送HTML格式的邮件

    这篇文章主要介绍了如何使用Python发送HTML格式的邮件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python使用Matplotlib实现Logos设计代码

    Python使用Matplotlib实现Logos设计代码

    这篇文章主要介绍了Python使用Matplotlib实现Logos设计代码,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • python调用函数、类和文件操作简单实例总结

    python调用函数、类和文件操作简单实例总结

    这篇文章主要介绍了python调用函数、类和文件操作,结合简单实例形式总结分析了Python调用函数、类和文件操作的各种常见操作技巧,需要的朋友可以参考下
    2019-11-11
  • Django学习笔记之View操作指南

    Django学习笔记之View操作指南

    这篇文章主要给大家介绍了关于Django学习笔记之View操作指南的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Django模块学习之模块语言详解

    Django模块学习之模块语言详解

    模板语言渲染的整个过程其实就是将html转换成函数,并为该函数提供全局变量,然后执行该函数,下面这篇文章主要给大家介绍了关于Django模块学习之模块语言的相关资料,需要的朋友可以参考下
    2021-11-11
  • python数据库PooledDB连接池初始化使用示例

    python数据库PooledDB连接池初始化使用示例

    这篇文章主要为大家介绍了python数据库PooledDB连接池初始化使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论