我有一个带有传说的情节。我想在图例框中添加一个条目。此条目可能类似于拟合参数或其他描述数据的内容。
举个例子,可以使用下面的代码
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"
,例如
empty_patch = mpatches.Patch(color='none', label='Extra label')
plt.legend(handles=[empty_patch])
为了拥有这个以及您现有的图例条目,您可以获得现有图例句柄和标签的列表,向其中添加额外的,然后绘制图例:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
x = np.linspace(0, 2*np.pi, 101)
y = np.sin(x)
plt.plot(x, y, color='r', label='y = sin(x)')
handles, labels = plt.gca().get_legend_handles_labels() # get existing handles and labels
empty_patch = mpatches.Patch(color='none', label='Extra label') # create a patch with no color
handles.append(empty_patch) # add new patches and labels to list
labels.append("Extra label")
plt.legend(handles, labels) # apply new handles and labels to plot
plt.show()
给出:
关于python - 如何将没有符号/颜色的图例条目添加到现有图例中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49491942/