【发布时间】:2022-06-22 19:11:18
【问题描述】:
我正在向我的绘图中添加一些文本(总是在左上角),当我添加带有 loc='best' 的图例时,它似乎忽略了文本。
重现问题的代码:
import matplotlib.pyplot as plt
x = [1, 2]
plt.plot(x, x, label='plot name')
plt.gca().text(0.05, 0.95, 'some text', transform=plt.gca().transAxes, verticalalignment='top')
plt.legend(loc='best')
plt.show()
我得到的结果:
我的文字总是在同一个地方,所以如果我可以从best 选项中排除“左上角”,它也会起作用。但是很好奇loc的算法为什么会忽略它。
谢谢
【问题讨论】:
-
这能回答你的问题吗? Move and resize legends-box in matplotlib
-
谢谢@felixk。它没有回答我的问题。答案建议“手动”移动它。我有很多情节。在所有这些中,文本都在同一个地方,但“最佳”位置可能因人而异。我希望让 loc='best' 算法以某种方式理解文本的存在,或者隐含地告诉它避免使用“左上角”并寻找其他最佳选项。
-
您可能会在文本的位置画一些虚拟线,例如
plt.plot(0.05, 0.95, transform=plt.gca().transAxes, color='none'). -
你可能想在 [github ](github.com/matplotlib/matplotlib) 上打开一个问题
-
@JohanC 这是一个很好的解决方法!它运作良好。我把它打开也许是为了一个“适当的”解决方案。
标签: python matplotlib legend