Matplotlib多子图使用一个图例的实现
更新时间:2023年08月16日 10:04:05 作者:Threetiff
多子图是Matplotlib中的一个功能,可以在同一图形中创建多个子图,本文主要介绍了Matplotlib多子图使用一个图例的实现,感兴趣的可以了解一下
1 所有子图的图例相同
利用函数 fig.axe.get_legend_handles_labels()
得到图的 line
和 label
import matplotlib.pyplot as plt fig = plt.figure() axes = fig.subplots(nrows=2, ncols=2) for ax in fig.axes: ax.plot([0, 10], [0, 10], label='linear') # 使用最后一个子图的图例 lines, labels = fig.axes[-1].get_legend_handles_labels() fig.legend(lines, labels, loc = 'upper center') # 图例的位置,bbox_to_anchor=(0.5, 0.92), plt.show()
2 所有的子图图例不同
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 501) fig = plt.figure() axes = fig.subplots(nrows=2, ncols=2) axes[0, 0].plot(x,np.sin(x),color = 'k',label="sin(x)") axes[0, 1].plot(x,np.cos(x),color = 'b',label="cos(x)") axes[1, 0].plot(x,np.sin(x) + np.cos(x),color = 'r',label="sin(x)+cos(x)") axes[1, 1].plot(x,np.sin(x) - np.cos(x),color = 'm',label="sin(x)-cos(x)") lines = [] labels = [] # 利用循环得到每一个子图的图例 for ax in fig.axes: axLine, axLabel = ax.get_legend_handles_labels() lines.extend(axLine) labels.extend(axLabel) fig.legend(lines, labels, loc = 'upper right') # 图例的位置,bbox_to_anchor=(0.5, 0.92), plt.show()
参考链接
到此这篇关于Matplotlib多子图使用一个图例的实现的文章就介绍到这了,更多相关Matplotlib多子图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python3的高阶函数map,reduce,filter的示例详解
这篇文章主要介绍了Python3的高阶函数map,reduce,filter的示例代码,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-07-07Python如何把Spark数据写入ElasticSearch
这篇文章主要介绍了Python如何把Spark数据写入ElasticSearch,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-04-04Python+Selenium实现自动化的环境搭建的步骤(图文)
这篇文章主要介绍了Python+Selenium实现自动化的环境搭建的步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-09-09
最新评论