【发布时间】:2018-03-26 12:52:08
【问题描述】:
我有一个带有传奇的情节。我想在图例框中添加一个条目。该条目可以是拟合参数或其他描述数据的内容。
例如,可以使用下面的代码
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 101)
y = np.sin(x)
plt.plot(x, y, color='r', label='y = sin(x)')
plt.plot(np.NaN, np.NaN, color='k', label='extra label')
plt.plot(np.NaN, np.NaN, color='b', linestyle=None, label='linestyle = None')
plt.plot(np.NaN, np.NaN, color='orange', marker=None, label='marker = None')
plt.plot(np.NaN, np.NaN, color=None, label='color = None')
plt.legend()
plt.show()
生成下面的图
我想要一个标签"extra label",只有空格,没有符号。我尝试将linestyle、marker 和color kwargs 更改为None,但没有成功。我也尝试过绘制plt.plot([], []) 而不是绘制plt.plot(np.NaN, np.NaN)。我想一些hacky解决方法是将color='k'更改为color='white'。但我希望有更合适的方法来做到这一点。我该怎么做?
编辑
我的问题不是重复的。被指控复制的帖子显示了另一种制作传奇标签的方式,但不适用于没有符号的人。可以运行下面的代码来测试我的原始问题中的相同问题是否适用。
import matplotlib.patches as mpatches
nan_patch = mpatches.Patch(color=None, label='The label for no data')
并从plt.legend()修改此实例
plt.legend(handles=[nan_patch])
【问题讨论】:
-
将
color=None更改为color="None" -
@ImportanceOfBeingErnest 你能解释一下为什么这仍然被标记为重复吗?
-
@DavidG 你能解释一下为什么这仍然被标记为重复吗?
标签: python python-3.x matplotlib plot legend