作者alvinlin (康斯坦汀《驱魔神探》)
标题Re: [问题] matplotlib显示中文的问题
时间Mon Jun 1 18:40:25 2020
请参考以下快速可行的方案:
0) 请确认您有安装 matplotlib 套件。
1) 打开命令提示字元 Command Prompt, 输入下列指令:
python -c "print(__import__('matplotlib').matplotlib_fname())"
或是在命令提示字元输入 python (或 python3) 按下 Enter,然後在 >>> 的提示字元
後,分别输入以下两行指令:
import matplotlib
print(matplotlib.matplotlib_fname())
2) 检视上述的输出结果。这是 matplotlib 的设定档。输出结果会类似於:
C:\Users\<username>\AppData\Local\Programs\Python\Python38\lib
\site-packages\matplotlib\mpl-data\matplotlibrc
3) 用 Notepad 或文字编辑器开启上述的 matplotlibrc 设定档,找到开头为:
#font.serif
#font.sans-serif
这两行。
4) 编辑这个档案。移除这两行前面的 #。
5) 在上述两行的 "DejaVu Serif" 前加入
"Microsoft JhengHei, "
(不含引号)。
6) 接着继续找到下列开头为 # axes 这行:
#axes.unicode_minus
7) 移除这行前的 #。
8) 修改这行结尾的 True 为 False (这样图片中可以显示负号)。
9) 将修改上述内容後的 matplotlibrc 设定档存档。
10) 在开始功能表,按右键,选[执行]。输入 %userprofile%。按下[确定]。
11) 找到 %userprofile%\.matplotlib 目录。这是快取档案。删除这个目录。
12) 到步骤2)的
lib\site-packages\matplotlib\__pycache__
这个__pycache__目录。这是快取档案。删除这个目录。
13) 在开始功能表,按右键,选[执行]。输入 fonts。按下[确定]。
14) 在搜寻输入 "Microsoft JhengHei"。找到後点取它後,按右键,选[复制]。
15) 开启在步骤2)的
lib\site-packages\matplotlib\mpl-data\ 下的 fonts\ttf 目录资料夹。
16) 贴上刚才的 "Microsoft JhengHei" 字形档案(可能有3个)。
17) 好了。重新启动你的程式。套件会重新产生步骤 11 和 步骤 12 的目录。
<<5月10日修改>>
※ 引述《KenSugo (书狗)》之铭言:
: 如题
: 小弟最近练习爬虫
: 并用matplotlib绘制长条图
: https://i.imgur.com/Zzok2LD.jpg
: 上图是其中一段code
: https://i.imgur.com/AhoDujs.jpg
: 第二张图则是产出的结果
: 我成功显示标题跟图例的中文字
: 但是可以看到第二张图下面的关键字
: 全部都是框框
: 关键字是我用爬虫爬来的资讯
: 且可能为数字或者中文字
: 数字可以显示 但中文字不行
: 想请教如何将框框成功输出成中文字?
: (有尝试过使用跟标题中文还有图例中文一样的方法,就是一样在後面加上fontproperti
: es = grtChineseFont(),没办法成功显示,猜想可能k值是我爬虫爬到的资讯)
: 想请教板上神人 谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.137.104.155 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1591008027.A.D14.html
1F:→ KenSugo: 感谢大大的帮忙 已成功产出 06/01 20:06
2F:→ alvinlin: ^^不客气。这问题我研究了好久。书上写的网路上面的都是 06/01 20:27
3F:→ alvinlin: 错的。 06/01 20:27
5F:推 a71245969: 感谢感谢受益良多 书上都错的囧 07/01 21:51
※ 编辑: alvinlin (180.177.214.6 台湾), 05/10/2021 11:51:00
※ 编辑: alvinlin (180.177.214.6 台湾), 05/10/2021 11:56:14