plt.legend(color_patches, ['城市', '混合城市', '混合乡村', '乡村'], loc='upper right'),为什么中文不显示
时间: 2023-08-06 13:17:51 浏览: 70
Matplotlib 默认使用英文字体来显示中文,因此您需要使用支持中文的字体来显示中文。您可以使用 `matplotlib.font_manager` 模块中的 `FontProperties` 类来指定字体。例如:
```
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import numpy as np
# 生成数据
data = [np.random.normal(0, 1, size=100) for _ in range(4)]
# 绘制箱线图
bp = plt.boxplot(data, patch_artist=True)
# 设置箱子颜色
colors = ['red', 'green', 'blue', 'orange']
for box, color in zip(bp['boxes'], colors):
box.set(facecolor=color)
# 设置中文字体
font = fm.FontProperties(fname='path/to/font.ttf', size=14)
# 添加颜色的图例
color_patches = [plt.Rectangle((0, 0), 1, 1, fc=color) for color in colors]
plt.legend(color_patches, ['城市', '混合城市', '混合乡村', '乡村'], loc='upper right', prop=font)
plt.show()
```
在这个例子中,我们使用了 `FontProperties` 类来指定字体文件的路径,然后将其作为 `prop` 参数传递给 `plt.legend()` 方法。您需要将 `'path/to/font.ttf'` 替换为您系统中支持中文的字体文件的路径。请注意,如果字体文件中包含多种字体,您还需要指定要使用的字体名称。
阅读全文