如何更改图例中字体的文字颜色?

新手上路,请多包涵

有没有办法改变 matplotlib 图中图例的字体颜色?

特别是在情节背景较暗的场合,图例中默认的黑色文本很难或无法阅读。

原文由 firefly 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

调用 Legend.get_texts() 将获得图例对象中的文本对象列表:

 import pylab as pl
pl.plot(randn(100), label="randn")
l = legend()
for text in l.get_texts():
    text.set_color("red")

原文由 HYRY 发布,翻译遵循 CC BY-SA 3.0 许可协议

从 matplotlib 版本 3.3.0 开始,您现在可以直接在 — 中使用关键字参数 labelcolor matplotlib.pyplot.legend()


通过设置 labelcolor='linecolor' 使用与相应艺术家相同颜色的示例:

 import matplotlib.pyplot as plt
import numpy as np

plt.figure(figsize=(4, 3))
plt.plot(np.arange(10), np.random.rand(10) * 0, '-', label='spam')
plt.plot(np.arange(10), np.random.rand(10) * 1, ':', label='ham')
plt.plot(np.arange(10), np.random.rand(10) * 2, 'o', label='eggs')
plt.legend(labelcolor='linecolor')

matplotlib 图例文本颜色:’linecolor’


通过设置 labelcolor='w' 将所有文本更改为白色的示例,例如对于深色背景:

 import matplotlib.pyplot as plt
import numpy as np

plt.figure(figsize=(4, 3))
plt.plot(np.arange(10), np.random.rand(10) * 0, '-', label='spam')
plt.plot(np.arange(10), np.random.rand(10) * 1, ':', label='ham')
plt.plot(np.arange(10), np.random.rand(10) * 2, 'o', label='eggs')
plt.legend(facecolor='k', labelcolor='w')

matplotlib 图例文本颜色:深色背景的所有文本为白色

原文由 Zaus 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏