200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【Python】Matplotlib绘图中文乱码问题的解决方案

【Python】Matplotlib绘图中文乱码问题的解决方案

时间:2024-08-19 15:22:29

相关推荐

【Python】Matplotlib绘图中文乱码问题的解决方案

乱码问题描述

以之前一篇博文的内容来说吧,本图的坐标轴需要使用中文,我们按照库函数的使用方法,可能会写出这样的Code:

import numpy as npimport matplotlib.pyplot as pltimport matplotlib as mplmu = 60.0sigma = 2.0x = mu + sigma*np.random.randn(500)bins = 50fig, ax = plt.subplots(1, 1)n, bins, patches = ax.hist(x, bins, density=True, histtype="bar", facecolor="#99FF33", edgecolor="#00FF99", alpha=0.75)y = ((1/(np.power(2*np.pi, 0.5)*sigma))*np.exp(-0.5*np.power((bins-mu)/sigma, 2)))ax.plot(bins, y, color="#7744FF", ls="--", lw=2)ax.grid(ls=":", lw=1, color="gray", alpha=0.2)ax.text(54, 0.2, r"$y=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}$", {"color":"#FF5511", "fontsize":20})ax.set_xlabel("体重")ax.set_ylabel("概率密度")ax.set_title(r"体重的直方图:$\mu=60.0$, $\sigma=2.0$", fontsize=16)plt.show()

接下来就会爆一堆“红字”(异常),制出的图是这样的:

红线围住的区域都是乱码,这可真令人头疼啊……

加上utf-8题头的注释

# -*- coding:utf-8 -*-

结果还是一样的,乱码。

那怎么做呢?

正解

处理方式是在代码中加入这两行代码:

mpl.rcParams["font.sans-serif"] = ["KaiTi"]mpl.rcParams["axes.unicode_minus"] = False

完整代码

在这里 → Here

总结

加上这三行代码(其实只加上后面两行代码就行),就能有效处理Matplotlib的中文乱码问题。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。