Seaborn、Matplotlib、绘图中文错误

Seaborn, Matplotlib, plot Chinese error

这是我的样本数据cities_counter[:10]

[('上海', 285), ('杭州', 225), ('北京', 163), ('广州', 136), ('南京', 130), ('武汉', 124), ('深圳', 88), ('温州', 67), ('苏州', 66), ('宁波', 45)]

我想用 Seaborn 和 Matplotlib 制作条形图,所以这是我的代码

>>> sns.set(style="whitegrid")
>>> sns.set_color_codes("pastel")
>>> sns.barplot(x=[k for k, _ in cities_counter[:10]], y=[v for _, v in cities_counter[:10]])

结果是

环境:

如何绘制汉字?

尝试设置 matplotlib 字体,然后设置 seaborn.And 确保该字体在您的系统中可用。

对我有用。

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
import seaborn as sns
sns.set_style("darkgrid",{"font.sans-serif":['simhei', 'Arial']})

详细了解 seaborn.set or seaborn.set_style

你也可以看看这个issue

希望对您有所帮助。

诀窍是你必须在所有 seaborn set 执行后设置 seaborn 字体,否则设置字体操作不起作用:

import seaborn as sns

sns.set(style="whitegrid")
sns.set_color_codes("pastel")
sns.set(font="SimSun")

data = [('上海', 285), ('杭州', 225), ('北京', 163), ('广州', 136)]
sns.barplot(x=[k for k, _ in data], y=[v for _, v in data])

以上代码适用于 matplotlib==3.1.1seaborn==0.9.0,希望对您有所帮助。