python的plot画图,如何显示中文?中文显示方框怎么办? | 您所在的位置:网站首页 › pdf中的中文显示为方框怎么办 › python的plot画图,如何显示中文?中文显示方框怎么办? |
![]() 基于python,苏南大叔使用plot画了一个体现鸢尾花数据的散点图。那么,在图中可以添加title,suptitle,xlabel,ylabel等文字,但是一旦把这些文字换成中文后,就会显示为框框了。这个问题如何解决呢?这就是本文要解决的主要问题。
大家好,这里是苏南大叔的“程序如此灵动”博客,记录苏南大叔和计算机代码的故事。本文测试环境:win10,[email protected],[email protected],[email protected],[email protected]。另外,值得特别说明的是:plot还有基于R语言的版本,本文的环境是python。 中文显示框框基于上一篇文章的代码, https://newsn.net/say/plot-scatter.html把显示文字的title,suptitle,xlabel,ylabel等选项,换成中文的话,就会显示框框,如下图所示:
同时有报错信息: UserWarning: Glyph 38598 (\N{CJK UNIFIED IDEOGRAPH-96C6}) missing from current font.发生这个问题的原因,就是plot的字体设置问题,并没有识别到显示中文的相关字体(比如simhei)。有关字体的描述,可以参考: https://newsn.net/say/font-family-name.html画图程序的顶部标题栏部分,倒是正常显示中文了。很奇怪吧...解决方案解决方案就是修改plot的默认配置,使他识别中文字体。当然,如果想显示别的中文字体,请修改对应的代码里面的字体名称。设置为黑体: plt.rcParams["font.sans-serif"] = ["SimHei"]设置为楷体: plt.rcParams['font.family']=['KaiTi']
实际上设置中文字体后,还可能会遇到下面的报错: UserWarning: Glyph 8722 (\N{MINUS SIGN}) missing from current font这个是由于无法渲染减号所造成的,解决方案是: plt.rc('axes', unicode_minus=False)完整测试代码本文的完整测试代码如下: 这是付费可看内容,收费5元。题外话题外话就是iris的数据和plt的横纵坐标标签之间是存在着对应关系的。下面的代码显示了对应关系的另外一种理解角度。 column_names = ["萼长", "萼宽", "瓣长", "瓣宽", "种类"] iris = np.array(df_iris) # ... x = 0 y = 1 data_x = iris[:, x] data_y = iris[:, y] data_z = iris[:, 4] plt.scatter(data_x, data_y, c=data_z, cmap="brg") plt.xlabel(column_names[x]) plt.ylabel(column_names[y]) # ...相关文章中文乱码问题,在编程过程中非常常见。但是不同的环境下,解决方案却是大不相同。如下有很多中文乱码的经验文章,请查看: https://newsn.net/say/python-json-dumps.htmlhttps://newsn.net/say/py2neo-cypher-encoding.htmlhttps://newsn.net/say/scrapy-export-encoding.htmlhttps://newsn.net/say/electron-cmd-encoding.htmlhttps://newsn.net/say/querylist-encoding-all.html结束语更多python的matplotlib画图的问题,可以参考: https://newsn.net/tag/plot/![]() ![]() ![]()
|
CopyRight 2018-2019 实验室设备网 版权所有 |