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]])
结果是
环境:
- Windows10
- Python 3.5
如何绘制汉字?
尝试设置 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.1
和 seaborn==0.9.0
,希望对您有所帮助。
这是我的样本数据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]])
结果是
环境:
- Windows10
- Python 3.5
如何绘制汉字?
尝试设置 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.1
和 seaborn==0.9.0
,希望对您有所帮助。