JDG*_*DGD 1 python matplotlib legend
创建了一个图例并根据需要格式化文本,但无法弄清楚如何删除“破折号”行以便只显示文本。这是我现在得到的(注意该行是如何穿过右对齐的文本):

#Add legend
leg = ax1.legend(bbox_to_anchor=(0.03, 1.05), prop={'size':8})
leg.get_frame().set_alpha(0)
legText = pylab.gca().get_legend().get_texts()
#Format legend text
legText[0].set_color('#5998ff')
legText[1].set_color('#ffbb82')
legText[2].set_color('#d689c4')
for text in legText:
    text.set_ha('right')
据我所知,您无法删除破折号(我认为这称为图例句柄),但您可以将其替换为不可见的东西。例如,一个常见的问题是将图例句柄定义为彩色矩形。
基本思想是直接创建句柄,然后将要包含在图例中的所有项目作为两个列表传递。第一个列表是句柄,第二个是标签的文本。
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Rectangle
x = np.linspace(0, 1)
p1, = plt.plot(x, np.cos(x))
leg1 = Rectangle((0, 0), 0, 0, alpha=0.0)
plt.legend([leg1], ['label'], handlelength=0)
plt.show()

我怀疑您需要稍微尝试一下才能获得您想要的确切外观。如果您不需要框架,我可能会建议frameon=False在以plt.legend()这种方式调用时使用参数,您无需担心与框的对齐。
| 归档时间: | 
 | 
| 查看次数: | 3403 次 | 
| 最近记录: |