【Matplotlib】 增加图例
2024-09-21 06:35:09
相关文档:
控制图例入口
无参调用 legend() 会自动获取图例 handles
以及相关的 labels
。其对应于以下代码:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles, labels)
get_legend_handles_labels()方法返回 存在于图像中的 handles/artists 列表,这些图像可以用来生成结果图例中的入口。值得注意的是并不是所有的 artists 都可以被添加到图例中。
为了全部控制添加到图例中的内容,通常直接传递适量的 handles 给legend()函数。
line_up, = plt.plot([1,2,3], label='Line 2')
line_down, = plt.plot([3,2,1], label='Line 1')
plt.legend(handles=[line_up, line_down])
某些情况下,不太可能设置 handle 的 label,所以需要传递 labels 的列表给 legend()。
line_up, = plt.plot([1,2,3], label='Line 2')
line_down, = plt.plot([3,2,1], label='Line 1')
plt.legend([line_up, line_down], ['Line Up', 'Line Down'])
综合例子如下:
import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(8,5), dpi=80)
plt.subplot(111)
X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C = np.cos(X)
S = np.sin(X)
plt.plot(X, C, color="blue", linewidth=2.5, linestyle="-", label="cosine")
plt.plot(X, S, color="red", linewidth=2.5, linestyle="-", label="sine")
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
plt.xlim(X.min() * 1.1, X.max() * 1.1)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
plt.ylim(C.min() * 1.1, C.max() * 1.1)
plt.yticks([-1, +1],
[r'$-1$', r'$+1$'])
plt.legend(loc='upper left')
plt.show()
图像表现形式如下:
最新文章
- InstallShield 脚本语言学习笔记
- C语言初级进阶1
- SQL Server2014,附加数据库失败,错误为:5120的解决方法
- 谷歌input框黄色背景问题
- hdu 4044 2011北京赛区网络赛E 树形dp ****
- FBI是如何破获“美国少女”裸照勒索案的
- PHP中file_put_contents追加时换行
- 【教程】如何正确的写一个Lemon/Cena的SPJ(special judge)
- POJ 1068 Parencodings 模拟 难度:0
- c#的基础入门回顾
- linux驱动分离分层的概念
- HTTP使用BASIC认证的原理及实现方法
- 解决TIME_WAIT过多问题
- Android开发之Toast解析
- HTTP压缩算法SDCH
- 看Lucene源码必须知道的基本概念
- python3 第四章 - 输入与输出
- Python format 格式化函数
- Python——Django-urls.py的作用
- Django模型操作常用方法