Python编程:解决matplotlib绘图中文乱码问题
【摘要】 测试环境:
macpython3
先查看本机支持的字体
# 显示可以用的中文字体
from matplotlib.font_manager import FontManager
import subprocess
def show_can_use_font(): # all font list get from matplotlib.font_manager...
测试环境:
- mac
- python3
先查看本机支持的字体
# 显示可以用的中文字体
from matplotlib.font_manager import FontManager
import subprocess
def show_can_use_font(): # all font list get from matplotlib.font_manager: mpl_fonts = set(f.name for f in FontManager().ttflist) # for python2 # output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True) # for python3 # Chinese font list get from fc-list output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True, encoding="utf8") zh_fonts = set(f.split(',', 1)[0] for f in output.split('\n')) # the fonts we can use: available = set(mpl_fonts) & set(zh_fonts) for f in available: print('\t', f)
if __name__ == '__main__': show_can_use_font()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
运行以上脚本,得到可以使用的字体
LiSong Pro
.LastResort
Arial Unicode MS
LiHei Pro
Wawati SC
Wawati TC
STFangsong
STHeiti
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
将上面的字体设置到rcParams
就可以正常显示中文
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import rcParams
# 设置字体
rcParams["font.family"]="STHeiti"
rcParams["font.size"]= 8
path = "data/总人口.txt"
data = pd.read_csv(path, sep=" ")
data = pd.DataFrame(data)
x = data.ix[4].keys()[1:]
y = data.ix[4].values[1:]
print(x)
print(y)
"""
Index(['2016年', '2015年', '2014年', '2013年', '2012年', '2011年', '2010年', '2009年', '2008年', '2007年'], dtype='object')
[58973 60346 61866 62961 64222 65656 67113 68938 70399 71496]
"""
plt.plot(x, y)
plt.title("乡村人口(万人)")
plt.xlabel("时间(年)")
plt.ylabel("人口(万人)")
plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
附件:
data/总人口.txt
指标 2016年 2015年 2014年 2013年 2012年 2011年 2010年 2009年 2008年 2007年
年末总人口(万人) 138271 137462 136782 136072 135404 134735 134091 133450 132802 132129
男性人口(万人) 70815 70414 70079 69728 69395 69068 68748 68647 68357 68048
女性人口(万人) 67456 67048 66703 66344 66009 65667 65343 64803 64445 64081
城镇人口(万人) 79298 77116 74916 73111 71182 69079 66978 64512 62403 60633
乡村人口(万人) 58973 60346 61866 62961 64222 65656 67113 68938 70399 71496
- 1
- 2
- 3
- 4
- 5
- 6
- 7
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/83343574
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)