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 条评论
登录 后参与评论

相关文章

来自专栏点滴积累

geotrellis使用(十六)使用缓冲区分析的方式解决投影变换中边缘数据值计算的问题

Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 问题探索 ...

3434
来自专栏人工智能LeadAI

解析Tensorflow官方PTB模型的demo

01 seq2seq代码案例解读 RNN 模型作为一个可以学习时间序列的模型被认为是深度学习中比较重要的一类模型。在Tensorflow的官方教程中,有两个与...

4668
来自专栏Python爬虫实战

图片转字符画

字符画是一系列字符的组合,我们可以把字符看作是比较大块的像素,一个字符能表现一种颜色(暂且这么理解吧),字符的种类越多,可以表现的颜色也越多,图片也会更有层次感...

1282
来自专栏编程

Mask R-CNN 源代码终上线,Facebook 开源目标检测平台—Detectron

Example Mask R-CNN output Facebook AI 研究院(FAIR)昨日开源了一款目标检测平台—Detectron,基于Python和...

4108
来自专栏AI科技大本营的专栏

Mask R-CNN 源代码终上线,Facebook 开源目标检测平台—Detectron

Example Mask R-CNN output Facebook AI 研究院(FAIR)昨日开源了一款目标检测平台—Detectron,基于Python和...

4268
来自专栏机器之心

教程 | 如何在Tensorflow.js中处理MNIST图像数据

对任何一个机器学习问题而言,数据处理都是很重要的一步。本文将采用 Tensorflow.js(0.11.1)的 MNIST 样例(https://github....

1193
来自专栏AI深度学习求索

CAM实践:基于pytorch的使用方法

注意:如果为了快一点,不使用网络的图片以及文件的话,记得更改图片地址和已下载文件地址哦

2013
来自专栏ATYUN订阅号

深度学习图像识别项目(中):Keras和卷积神经网络(CNN)

在下篇文章中,我还会演示如何将训练好的Keras模型,通过几行代码将其部署到智能手机上。

1.4K5
来自专栏深度学习那些事儿

深度学习-TF、keras两种padding方式:vaild和same

在使用Keras的时候会遇到这样的代码x = Conv2D(filters, kernel_size=5, strides=2, padding='same')...

2185
来自专栏人工智能LeadAI

TensorFlow中的Nan值的陷阱

之前在TensorFlow中实现不同的神经网络,作为新手,发现经常会出现计算的loss中,出现Nan值的情况,总的来说,TensorFlow中出现Nan值的情况...

5295

扫码关注云+社区