首页 > 解决方案 > Python matplotlib分散标签颜色为白色

问题描述

对于以下代码,如何将标签的颜色更改为白色。默认打印为黑色。

当我尝试添加 color='w' 或 color = 'white' 时,它会抛出错误,指出颜色未在 plt scatter 上定义。

for a in [100, 300, 500]:
    plt.scatter([], [], c='lawngreen', alpha=0.8, s=a, label=str(a) + ' km$^2$')
plt.grid(True)
plt.legend(scatterpoints=1, frameon=False,labelspacing=1, loc='lower left')

标签: pythonmatplotlib

解决方案


由于我的评论似乎不够清楚,我在这里复制答案。

只需使用此帖子。下面的代码也改变了背景颜色,所以白色的图例文本是可见的:

import matplotlib.pyplot as plt
from matplotlib import font_manager
import numpy as np

for a in [100, 300, 500]:
    plt.scatter([], [], c='lawngreen', alpha=0.8, s=a, label=str(a) + ' km²')
plt.grid(True)
plt.gca().set_facecolor('skyblue')
leg = plt.legend(scatterpoints=1, frameon=False,labelspacing=1, loc='lower left')
plt.setp(leg.get_texts(), color='white')
plt.show()

示例图

请注意,这plt.setp(leg.get_texts(), color='white')只是一个快捷方式

for text in leg.get_texts():
    text.set_color('white')

推荐阅读