Python3.0科学计算学习之绘图(一)
- 基本绘图:
(1) plot是标准的绘图库,调用函数plot(x,y)就可以创建一个带有绘图的图形窗口(其中y是x的函数)。输入的参数为具有相同长度的数组(或列表);或者plot(y)是plot(range(len(y)),y)的简写。
例1:python实现使用200个采样点来绘制sin(x),并且每隔四个点的位置设置标记。
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['simhei'] #指定默认字体(因为matplotlib默认为英文字体,汉字会使其乱码)
plt.rcParams['axes.unicode_minus']=False #可显示‘-’负号
x=np.linspace(-2*np.pi,2*np.pi,200) #先设定x的取值范围,从-2n到2n
samples=x[::4]
plt.plot(samples,np.sin(samples),color='red',marker='*')
plt.title('sin(x)函数及一些绘制的点')
plt.grid(color='black',linestyle='--',alpha=0.3)
plt.show()
#实现结果图:

表明:标准图是一条实线曲线,每个轴都会自动缩放来适应坐标值,但也可以手动进行设置。多次调用plot函数将会在同一窗口中叠加绘图。
(2) python3.0曲线拟合(polyfit,polyval)
利用numpy自带的polyfit 和 polyval 函数进行回归分析,polyfit 表示多项式曲线拟合、polyval 表示多项式曲线求值。
Z1=np.polyfit(x,y,3) #拟合,自由度为3,3为多项式最高次幂,结果为多项式的各个系数;最高系数为3,得到4个系数从最高到最低排列;最高次幂取几要视情况而定。
P1=np.ploy1d(z1) #将系数带入方程,得到函数式p1
Y=np.polyval(p,x) #计算多项式的函数值。返回在x处多项式的值,p为多项式系数,元素按多项式降幂排序
实例2. 将多项式拟合为一系列的点
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['simhei'] #指定默认字体
plt.rcParams['axes.unicode_minus']=False
x=np.arange(5)
y=[1,2,1,3,5]
p2=np.polyfit(x,y,2)
p4=np.polyfit(x,y,4)
xx=np.linspace(-1,5,200)
plt.plot(xx,np.polyval(p2,xx),label='二次多项式拟合') #绘制曲线
plt.plot(xx,np.polyval(p4,xx),label='四次多项式插值拟合')
plt.plot(x,y,'*') #原曲线
plt.axis([-1,5,0,6]) #axis([xmin,xmax,ymin,ymax]) 来手动设置坐标轴的范围
plt.legend(loc='upper left',fontsize='small') #legend()函数生成图例,添加标签来解释多重绘图,该处设置是将图例放在左上角并用小字号排版。
plt.show()
#结果图为:

2.. 二维散点图
代码如下:
import numpy as np
import matplotlib.pyplot as plt
x1=2*np.random.standard_normal((2,100))
x2=0.8*np.random.standard_normal((2,100))+np.array([[6],[2]]) #加二维数组
散点不重叠在一起
plt.plot(x1[0],x1[1],'g*')
plt.plot(x2[0],x2[1],'r*')
plt.title('2D散点图')
plt.show() #结果图为:

3. 对数图形绘制:
使用loglog函数即plt.loglog(x,y)
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['simhei'] #指定默认字体
plt.rcParams['axes.unicode_minus']=False
x=np.linspace(0,10,200)
plt.loglog(x,2*x*2,label='二次多项式',linestyle='--',linewidth=3)
plt.loglog(x,4*x*4,label='四次多项式',linestyle='-.',linewidth=3)
plt.loglog(x,5*np.exp(x),label='指数次多项式',linewidth=3)
plt.title('对数图')
#plt.axis([10*-2,10*2,10*-5,10*6]) #???思考遗留问题:如何调整指数函数x,y轴的范围
plt.legend(loc='best')
plt.show()

4. 绘图格式化
(1) 常见的绘图格式参数:
linestyle用于设置线条样式,其中描述solid 表字符串’-’(实线),dashed表‘--’(虚线),dashed dotted表‘- ,’dotted表‘:’。
color用于设置绘图的颜色,其中有描述blue(字符串用b),green(字符串用g),red(字符串用r),cyan青色(字符串表c),magenta洋红(字符串表m),yellow、black、white(字符串表y、b、w)
Marker对图形坐标点标记,其中字符串参数(描述)分别为:.(point) 、,(pixel)、。(circle)、*(star)、d,D(thin diamond,diamond)等
注意:格式化命令可以使用短字符串语法格式:例如,plt.plot(x,’go’)
实例:迭代计算出了正弦曲线上噪点的平均值
import numpy as np
import matplotlib.pyplot as plt
def avg(x): #函数avg使用roll调用来移动数组中所有的值。
"""simple running average"""
return(np.roll(x,1)+x+np.roll(x,-1)) #np.roll(x,2)是循环移位函数,表示向右循环移位2位
x=np.linspace(-2*np.pi,2*np.pi,200)
y=np.sin(x)+0.4*np.random.rand(200)
for iteration in range(3):
plt.subplot(3,1,iteration+1) 使用subplot命令将多个绘图放置于一个图形窗口中
plt.plot(x,y,label='{:d} average{}'.format(iteration,'s' if iteration> 1 else''))
plt.yticks([])
plt.legend(loc='lower left',frameon=False)
y=avg(y)
plt.subplots_adjust(hspace=0.7) #在同一个图形窗口中进行多次绘图的实例图

(2) savefig命令,允许用户将图形保存为图像格式,该命令支持多种图像和文件格式,可用文件扩展名指定:plt.savefig('test.pdf')
为将图像放在非白色的背景上,可设置transparent参数使得图片背景透明 plt.savefig('test.pdf',transparent=True)
plt.savefig('test.pdf',bbox_inches='tight') #如果要将图形嵌入LaTeX文档中,为减少周围的空白区域,建议通过在图纸周围设置图形的边框
Python3.0科学计算学习之绘图(一)的更多相关文章
- Python3.0科学计算学习之绘图(四)
绘制三维图: mplot3d工具包提供了点.线.等值线.曲面和所有其他基本组件以及三维旋转缩放的三维绘图. 1.散点的三维数据图 from mpl_toolkits.mplot3d import ax ...
- Python3.0科学计算学习之绘图(三)
matplotlib对象: 使用matplotlib的pyplot模块,可以供用户直接使用最重要的绘图命令.多数情况下,我们希望创建一个图形并且立即展示出来,但是有时如果生成要通过更改其属性来修改的图 ...
- Python3.0科学计算学习之绘图(二)
(1) np.mashgrid()函数:-----生成网络点坐标矩阵,可以是二维网络矩阵,也可以是三维网络矩阵.其中,每个交叉点就是网络点,描述这些网络点的矩阵就是坐标矩阵(横坐标矩阵X中的每个元素与 ...
- Python3.0科学计算学习之函数
函数 函数允许程序的控制在不同的代码片段之间切换,函数的重要意义在于可以在程序中清晰地分离不同的任务,将复杂的问题分解为几个相对简单的子问题,并逐个解决.即"分而治之". Pyth ...
- Python3.0科学计算学习之类
类: Python中的类是一个抽象的概念,甚至比函数还要抽象.可以把它简单的看作是数据以及由存取.操作这些数据的方法所组成的一个集合.类是Python的核心概念,是面向对象编程的基础. 类有如下的优点 ...
- python3在科学计算中的三种常用数据结构
在科学研究中,数据运算是必不可少的,下面介绍python语言在科学计算中常用的数据结构和运算函数. 主要数据结构: (1)列表,用中括号表示,元素之间逗号分隔,每个元素可以是数字,字符,也可以是列表, ...
- Python科学计算学习之高级数组(二)
代码性能和向量化 背景:Python是一种解释型的编程语言,基本的python代码不需要任何中间编译过程来得到机器代码,而是直接执行.而对于C.C++等编译性语言就需要在执行代码前将其编译为机器指令. ...
- Python科学计算学习一 NumPy 快速处理数据
1 创建数组 (1) array(boject, dtype=None, copy=True, order=None, subok=False, ndmin=0) a = array([1, 2, 3 ...
- 2019-04-20 Python之科学计算库学习总结
一.numpy库和matplotlib库的学习 (1)numpy库介绍:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成,并可与C++/Fort ...
随机推荐
- OpenSSL 提取 pfx 数字证书公钥与私钥
由于之前生产环境已经使用了 Identityserver4 用来做授权与认证的服务,而新项目采用 Spring Cloud 微服务体系,一方面 Spring Cloud 官方暂时只支持 OAuth2. ...
- pandas画图-【老鱼学pandas】
本节主要讲述如何把pandas中的数据用图表的方式显示在屏幕上,有点类似在excel中显示图表. 安装matplotlib 为了能够显示图表,首先需要安装matplotlib库,安装方法如下: pip ...
- 西北地区打不开github的解决办法~
泱泱我大西北,github打不开,的确痛苦的. http://ipaddress.com/ip_lookup/ 先查github.com 可能存在打不开的情况~ 随便找一个web在线代理,就可以查到了 ...
- Base64 加解密
import java.io.UnsupportedEncodingException; import org.apache.tomcat.util.codec.binary.Base64; /** ...
- Apache为mysql以及自己的项目设置虚拟路径
参考 http://www.120xcjl.com Apache为mysql以及自己的项目设置虚拟路径 1.Apache2.2\conf\httpd.conf中释放: Include conf/ex ...
- MERGE INTO无法更新ON中的字段解决办法
可以将on里的条件放到update 之后的where条件里 MERGE INTO xshtest.WEB_USER_VIP T1 USING ( select 53254624 enterpriseI ...
- 写给Android开发者的Kotlin入门
写给Android开发者的Kotlin入门 转 https://www.jianshu.com/p/bb53cba6c8f4 Google在今年的IO大会上宣布,将Android开发的官方语言更换为K ...
- 根据两点经纬度计算距离和角度——java实现
原理:见上一篇博客 http://blog.csdn.net/xiaobai091220106/article/details/50879365 百度地图拾取经纬度坐标:http://api.ma ...
- webpack3_脚手架
webpack 记得 --save-dev 装入开发依赖 更新迭代快,需要有根据报错解决问题的能力,来融会贯通这个工具 这里的是 webpack3,其实已经到了 webpack4 了 采用了 w ...
- __x__(29)0908第五天__高度塌陷 问题
高度塌陷 在文档流中,父元素的高度默认是被子元素撑开的. 但是当为 子元素 设置 float 时,子元素会完全脱离文档流,无法再撑开父元素,导致父元素高度塌陷...以致于布局混乱 变成 BFC块级格式 ...