无法删除图例框[python]

时间:2016-06-20 21:51:05

标签: python matplotlib plot

所以我需要在python中制作这个情节。我希望删除我的传奇边界。然而,当我尝试其他海报制作的不同解决方案时,他们无法与我合作。请帮忙。

这不起作用:

plt.legend({'z$\sim$0.35', 'z$\sim$0.1','z$\sim$1.55'})
plt.legend(frameon=False)
plt.legend({'z$\sim$0.35', 'z$\sim$0.1','z$\sim$1.55'})
plt.legend.get_frame().set_linewidth(0.0)
plt.legend({'z$\sim$0.35', 'z$\sim$0.1','z$\sim$1.55'}, 'Box', 'off')

此外,当我绘制时,我导入了两个不同的文件,并分别用一条线和圆圈绘制它们。我怎么能在图例键中放一条线或一个圆圈?

情节:

enter image description here

3 个答案:

答案 0 :(得分:5)

这很奇怪,因为命令:

plt.legend(frameon=False)

应该工作得很好。 您也可以尝试使用此命令进行比较:

plt.legend(frameon=None)

您还可以阅读此页面上有关plt.legend

的文档

我为你编写了一些例子:

import numpy as np
import matplotlib.pyplot as plt


x = np.array([0,4,8,13])
y = np.array([0,1,2,3])

fig1, ((ax1, ax2)) = plt.subplots(1, 2)

ax1.plot(x,y, label=u'test')
ax1.legend(loc='upper left', frameon=False)

ax2.plot(x,y, label=u'test2')
ax2.legend(loc='upper left', frameon=None)

plt.show()

enter image description here

答案 1 :(得分:0)

如果您只想绘制一个图(不带子图)

,请尝试此操作
plt.legend({'z$\sim$0.35', 'z$\sim$0.1','z$\sim$1.55'}, frameon=False)

一个plt.legend就足够了。第二个重写第一个。

答案 2 :(得分:0)

如果要指定位置并删除边框,请确保 frameon = False 与 plt.legend(...) 中的位置参数一起使用。如果将这些参数单独或依次写入,则存在覆盖问题,可能达不到预期的效果。

正确! plt.legend(loc="lower right", frameon=False)

这样写可能达不到预期的效果! plt.legend(loc="lower right") & plt.legend(frameon=False)