python数据分析入门——matplotlib的中文显示问题&最小二乘法
正在学习《用python做科学计算》,在练习最小二乘法时遇到matplotlib无法显示中文的问题。查资料,感觉动态的加上几条语句是最好,这里贴上全部的代码。
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 10 23:20:26 2016 @author: Administrator
""" import numpy as np
from scipy.optimize import leastsq
import pylab as pl '''
针对matplotlib显示中文的办法
只需添加下面三行代码
'''
import matplotlib as mpl
mpl.rcParams["font.sans-serif"] = ["Microsoft YaHei"]
mpl.rcParams['axes.unicode_minus'] = False def func(x, p):
'''
数据拟合所需要的函数
A*sin(2*K*np.pi*x + theta)
'''
A, k, theta = p
return A*np.sin(2*k*np.pi*x + theta) def residuals(p , y, x):
'''
实验数据和拟合函数之差,p为拟合需要的参数
'''
return (y-func(x, p)) x = np.linspace(0, -2*np.pi, 100)
A, k, theta = 10, 0.34, np.pi/6 # 真实数据的函数参数
y0 = func(x, [A, k, theta]) # 真实数据
y1 = y0 + 2 * np.random.randn(len(x)) # 加入噪声之后的数据 p0 = [7, 0.2, 0] # 第一次猜测的函数拟合函数
# 调用leastsq进行数据拟合
# residuals为计算误差的函数
# p0为拟合参数的初始值
# args为需要拟合的实验数据
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()
输出结果:

#########2016/10/11补更#############
是这样的,我在spyder环境下,用matplotlib作图,尝试上面的办法,竟然不可以。。。额。那个。其实上面的方法换其他的编辑器都是可以的,pycharm和sublime亲测可行。这里只是探索一下。
在spyder下显示是这样的,标题和图例都无法显示中文。懵逼。。。当时查了好久资料也一直没有解决,问题已经提问到stack overflow.

不过呢,今天在这里又看到另一种方式,虽说图例依然没办法显示中文,但是把标题的中文问题解决了。通过matplotlib中指定字体方法。
代码如下:
import matplotlib.pyplot as plt
import scipy
import numpy as np
from pylab import *
myfont = matplotlib.font_manager.FontProperties(fname='C:/Windows/Fonts/msyh.ttf')
mpl.rcParams['axes.unicode_minus'] = False
x=np.linspace(0,2*np.pi,10)
y=np.sin(x)
xvals=np.linspace(0,2*np.pi,20)
yinterp = np.interp(xvals, x, y)
plot1=plt.plot(x, y, 'o')#采用unicode编码
plot2=plt.plot(xvals, yinterp, '-x')
plt.xlabel(u'x轴',fontproperties=myfont)
plt.ylabel(u'y轴',fontproperties=myfont)
plt.title(u'插值',fontproperties=myfont)
plt.legend([u'真实值',u'插值'])
plt.show()
结果如下:

等我什么时候找到在spyder下面的完美解决方案再补充咯。
python数据分析入门——matplotlib的中文显示问题&最小二乘法的更多相关文章
- Python 3下Matplotlib画图中文显示乱码的解决方法
解决办法: 因为乱码是Matplotlib缺少中文配置所导致的,所以我们只需要在程序中说明使用中文字体即可. 先选一个字体.在计算机中找到字体,选择一种中文字体,比如我这里用的是楷体 右键可以查看其属 ...
- Ubuntu下matplotlib的中文显示
真真地被matplotlib的中文显示折磨的不行了.简要记下解决方案,防止以后重新配又是蛋疼菊紧. 我的环境:系统是Ubuntu 13.04,Python是系统自带的,matplotlib是apt安装 ...
- Python数据分析入门
Python数据分析入门 最近,Analysis with Programming加入了Planet Python.作为该网站的首批特约博客,我这里来分享一下如何通过Python来开始数据分析.具体内 ...
- Python数据分析入门与实践 ✌✌
Python数据分析入门与实践 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 这是一个数据驱动的时代,想要从事机器学习.人工智能.数据挖掘等前沿技术,都离不开 ...
- Python数据分析入门之pandas基础总结
Pandas--"大熊猫"基础 Series Series: pandas的长枪(数据表中的一列或一行,观测向量,一维数组...) Series1 = pd.Series(np.r ...
- Python数据分析入门与实践
Python数据分析入门与实践 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以关 ...
- python数据分析工具 | matplotlib
不论是数据挖掘还是数学建模,都免不了数据可视化的问题.对于 Python 来说,matplotlib 是最著名的绘图库,它主要用于二维绘图,当然也可以进行简单的三维绘图.它不但提供了一整套和 Matl ...
- Python 中使用 matplotlib 绘图中文字符显示异常的问题
最近在使用 Python matplotlib 绘制图表时发现中文字符不能正确显示:比如在绘制折线图时,中文全部显示成▢▢▢的格式,虽然将数据改成英文就没什么问题,但是所有数据都这么做时不可行的,于是 ...
- 10个步骤教你如何安装Anaconda安装,Python数据分析入门必看
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:小白 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...
随机推荐
- DSP算法学习-过采样技术
DSP算法学习-过采样技术 彭会锋 2015-04-27 23:23:47 参考论文: 1 http://wr.lib.tsinghua.edu.cn/sites/default/files/1207 ...
- HTML5自学笔记[ 10 ]简单的购物车拖拽
用html5拖拽功能实现了一个简单的购物车,样式简陋,得学学画画提高下审美了T^T: <!doctype html> <html> <head> <meta ...
- cycleInterpolator 循环加速器
CycleInterpolator Repeats the animation for a specified number of cycles. The rate of change follows ...
- SQL Server数据库(SQL Sever语言 存储过程及触发器)
存储过程:就像函数一样的会保存在数据库中-->可编程性-->存储过程 创建存储过程: 保存在数据库表,可编程性,存储过程create proc jiafa --需要的参数@a int,@b ...
- Objective-C(一简介)
Objective-C简介 通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言.它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统, ...
- VoltDB介绍——本质:数据保存在内存,充分利用CPU,单线程去锁,底层数据结构未知
转自:http://blog.csdn.net/ransom0512/article/details/50440316 简介 VoltDB数据库是一个分布式,可扩展,shared-nothing的内存 ...
- 22. Generate Parentheses——本质:树,DFS求解可能的path
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...
- GridView72变 控件
快速预览:GridView 无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单 DropDownList结合GridView和CheckBox结 ...
- [转]连续创建多个Oracle触发器失败,单个创建才成功的解决方法
连续创建多个Oracle触发器失败,单个创建才成功的解决方法 1.当我连续执行创建多个触发器时,总是报编译通过,但存在警告或错误.如下: create or replace trigger t ...
- Sharepoint2010突然之间不能打开页面,报503错误The service is unavailable
原因:安装Sahrepoint时的账号出现故障,可能是密码过期等等. 解决方案: 新建windows用户ada,密码设置为永不过期,隶属于:administrators/IIS-WPG/WSS-WPG ...