#|Matplotlib 绘图 双轴双图例 图
【#|Matplotlib 绘图 双轴双图例 图】
Matplotlib 绘图 双轴双图例 图
-
- 创作背景
- 分析思路
- 结果展示
- 结尾
创作背景 本菜鸡最近帮一个朋友画图,碰到个问题,就是需要
同一个图中要画两条折线
,而且 还得有两个 y 轴
,并且 显示两个图例
。好家伙,乍一听还挺头大,不过细分下来也不算难。
分析思路
- 首先就是要
在一个图中画两条折线
,这个不难,因为如果要传入两个 y 轴的数据的话,Matplotlib
就会自动画出来两条折线。
- 但第二个就有点难度,要
画双轴
,这个可以借鉴我的 这篇博客。
- 这个让我犯了难,因为直接使用
plt.legend()
函数的话只能显示次轴图的图例
,导致我怎么都弄不出来,所以我还是去 Matplotlib Gallery 寻找一波。最后我找到的是 这个例子。
看一下效果。
文章图片
四个字,花里胡哨
,不过确实显示了两个标签,所以我们还是可以借鉴一下。
还是分析源码,但这次直奔主题,精髓在这一句:
ax.legend((l2, l4), ('oscillatory', 'damped'), loc='upper right', shadow=True)
使用的是legend
函数,平常我们都是直接使用的plt.legend()
,然后就会显示所有图像的图例。但那时候并不像现在一样绘制双轴图
,所以我们可以学习例子中展示的源码,给legend
函数传参
。
让我们看一下legend
函数的官方文档。
文章图片
- 第一种情况就是常用的情况,不多赘述。
- 第二种情况就是在绘图的函数中不设置
label
参数,而在legend
函数中传入一个包含每个图的图例的列表
,因为例子只有一个图,所以列表也只有一个元素。
- 第三种情况就是我们现在遇到的情况,需要显式地定义图例,就需要传入两个参数:
一个是
将这两个参数传入图对象列表
,也就是包含调用plot
函数后返回的对象的列表
另一个是图例列表
,也就是包含需要显式定义的图例的列表
legend
函数后就可以达成目标
- 第一种情况就是常用的情况,不多赘述。
文章图片
结尾 以上就是我要分享的内容,因为学识尚浅,会有不足,还请各位大佬指正。
有什么问题也可在评论区留言。
文章图片
推荐阅读
- Python数据分析(一)(Matplotlib使用)
- Figure|Figure 图像
- r语言各形状编号_190+张图片!吐血整理!搞定R语言基础绘图全部知识点
- Python--matplotlib绘图可视化
- 神经网络绘图工具汇总
- CAD绘图技巧(如何用AutoCAD调整图纸绘图方向())
- 第十二周作业(Matplotlib Exercise)
- 3个matplotlib绘图易错点
- MNIST用matplotlib实现可视化
- Android使用继承View类来绘图