matplotlib学习笔记1-图中显示中文

相信很多初学者和我一样,在利用matplotlib库画图的时候遇到过图例不能显示中文的问题。经过仔细探索(百度+谷歌),现分享一种简单便捷一劳永逸的方法。

  • 一般画图是不能显示中文图例的:
import numpy as np
from scipy.optimize import leastsq
import pylab as pl
import matplotlib

def func(x,p):
    a,k,theta = p
    return a*np.sin(2*np.pi*k*x+theta)

def residuals(p,y,x):
    return y - func(x,p)

x = np.linspace(0,-2*np.pi,100)
a = 10
k = 0.34
theta = np.pi/6

y0 = func(x,[a,k,theta])
y1 = y0 + 2*np.random.randn(len(x))

p0 = [7,0.2,0]

plsq = leastsq(residuals,p0,args=(y1,x))
print('真实的参数',[a,k,theta])  
print('拟合参数',plsq[0]) 

pl.plot(x,y0,label = '真实数据')
pl.plot(x,y1,label = '带噪声的实验数据')
pl.plot(x,func(x,plsq[0]),label = '拟合数据')
pl.legend()
pl.show() 

运行之后,图例不能正常显示,只是几个框框。

  • 解决方法:
#在前面加上下面三行:
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

代码变成:

import numpy as np
from scipy.optimize import leastsq
import pylab as pl
import matplotlib

from pylab import * 
mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False**

def func(x,p):
    a,k,theta = p
    return a*np.sin(2*np.pi*k*x+theta)

def residuals(p,y,x):
    return y - func(x,p)

x = np.linspace(0,-2*np.pi,100)
a = 10
k = 0.34
theta = np.pi/6

y0 = func(x,[a,k,theta])
y1 = y0 + 2*np.random.randn(len(x))

p0 = [7,0.2,0]

plsq = leastsq(residuals,p0,args=(y1,x))
print('真实的参数',[a,k,theta])  
print('拟合参数',plsq[0]) 

pl.plot(x,y0,label = '真实数据')
pl.plot(x,y1,label = '带噪声的实验数据')
pl.plot(x,func(x,plsq[0]),label = '拟合数据')
pl.legend()
pl.show()    

运行该代码:

这样就轻松的解决了matplotlib中图例不能是中文的问题!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习入门与实践

【原】Spark之机器学习(Python版)(一)——聚类

kmeans聚类相信大家都已经很熟悉了。在Python里我们用kmeans通常调用Sklearn包(当然自己写也很简单)。那么在Spark里能不能也直接使用s...

86710
来自专栏SDNLAB

使用机器学习算法对流量分类的尝试——基于样本分类

导言 机器学习方法目前可以分为5个流派,分别是符号主义,联结主义,进化主义,贝叶斯和Analogzier。具体到实例有联结主义的神经网络,进化主义的遗传算法,贝...

50012
来自专栏北京马哥教育

Kmeans聚类代码实现及优化

云豆贴心提醒,本文阅读时间6分钟 这篇文章直接给出上次关于Kmeans聚类的篮球远动员数据分析案例,最后介绍Matplotlib包绘图的优化知识。 希望这篇文...

2905
来自专栏斑斓

大数据 | Spark中实现基础的PageRank

吴军博士在《数学之美》中深入浅出地介绍了由Google的佩奇与布林提出的PageRank算法,这是一种民主表决式网页排名技术。书中提到PageRank的核心思想...

3178
来自专栏https://www.cnblogs.com/L

【Caffe篇】--Caffe solver层从初始到应用

812
来自专栏新工科课程建设探讨——以能源与动力工程专业为例

4 高等数学中若干简单数值计算算例

高等数学贯穿了很多理工科的专业课,例如《工程热力学》气体做功的积分计算、《工程流体力学》光滑管道内流动速度分布(泊萧叶方程,Poiseuille,1840)的推...

750
来自专栏Python中文社区

使用MPI for Python 并行化遗传算法

專 欄 ❈PytLab,Python 中文社区专栏作者。主要从事科学计算与高性能计算领域的应用,主要语言为Python,C,C++。熟悉数值算法(最优化方法,...

2136
来自专栏生信技能树

把这个R包大卸八块

本来应该这是一个很正常的学习过程,之前总结了一篇博文Bioconductor的质谱蛋白组学数据分析,对蛋白组学定量那块比较感兴趣,正好看到一个R包-MSstat...

3076
来自专栏计算机视觉与深度学习基础

codeforces 438D

在某位不知名的大大推荐下做了这题,和我上一篇的线段树很像,于是怒拍,思想基本相同,记录区间最大值,当最大值小于取模时可以剪枝。 今后再遇到此类问题算是能解决了 ...

2009
来自专栏河湾欢儿的专栏

05-图片优化合并

遵循的原则: 把同属于一个模块的图片进行合并 把大小相近的图片进行合并 把色彩相近的图片进行合并 综合以上凡是合并

1012

扫码关注云+社区