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()的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-07-07python列表倒序的几种方法(切片、reverse()、reversed())
本文主要介绍了python列表倒序的几种方法(切片、reverse()、reversed()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-08-08Python中出现"No module named 'requests'"
这篇文章主要给大家介绍了关于Python中出现"No module named 'requests'"的解决办法,"No module named requests"是Python报错提示,意味着你在使用某个Python程序或脚本时,没有找到名为requests的模块,需要的朋友可以参考下2023-11-11
最新评论