matplotlib绘图的中文显示问题

摸鱼男孩 2016-06-29 03:22:55
我使用python matplotlib的pyplot进行绘图,但是中文显示是这样的模样
请问一下是什么原因
...全文
389 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoleisj0 2016-07-07
  • 打赏
  • 举报
回复
转码问题 def uni2str(s , code): if isinstance(s,unicode): return s.encode(code) else : return s 给你个通用方法 s是输入字符串,code是要转的码 按你脚本首行 这里要转utf8 不知道utf8支持中文怎么样,中文环境的化 我一般用GB2312
corfox_liu 2016-07-05
  • 打赏
  • 举报
回复
我也遇到过同样问题,忘记当初是参考哪了,示例代码如下:

#-*- coding: utf-8 -*-
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14) 
plt.figure(figsize=(6,6))


x = [1,2,3,4,5,6,7,8]
y = []
for i in x:
    y.append(-(i*i)+i+3)


plt.plot(x, y)
plt.title(u'测试程序', fontproperties=font)
plt.xlabel(u'x轴', fontproperties=font)
plt.ylabel(u'y轴', fontproperties=font)
plt.grid(True)
plt.show()

file_name = u'hausdorff_distance_value.txt'

fin = open(file_name, 'r')
lines = fin.readlines()
fin.close()
frame_number = []
hd_value = []

for line in lines:
	line = line.strip().split(',')
	frame_number.append(int(line[0]))
	hd_value.append(int(line[-1]))

plt.figure()
plt.title(u'每一帧匹配得到的HD值曲线', fontproperties=font)
plt.xlabel(u'帧数', fontproperties=font)
plt.ylabel(u'HD值', fontproperties=font)
plt.plot(frame_number, hd_value, 'k-')
plt.show()

手无护鸡之力 2016-07-01
  • 打赏
  • 举报
回复
中文字符前面加u吧,u'中文字符'

37,722

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧