【Python】【matplotlib】绘图函数
来源:互联网 发布:阿里云域名过户怎么过 编辑:程序博客网 时间:2024/06/08 16:36
对数坐标图
根据x, y 轴分别是否为对数,总共4种:
plot()semilogx()semilogy()loglog()
示例
import numpy as npimport matplotlib.pyplot as pltx=np.linspace(1,10,1000)y=np.sin(x)plt.subplot(221)plt.plot(x,y)plt.subplot(222)plt.semilogx(x,y)plt.subplot(223)plt.semilogy(x,y)plt.subplot(224)plt.loglog(x,y)plt.show()
http://www.guofei.site/public/postimg2/matplotlib3_1.png‘>
极坐标绘图
仅需要这样:
plt.subplot(111,polar=True)
示例
import numpy as npimport matplotlib.pyplot as plttheta=np.linspace(0,2*np.pi,100)rho=1-np.sin(theta)plt.subplot(111,polar=True)plt.plot(theta,rho)plt.show()
http://www.guofei.site/public/postimg2/matplotlib3_2.png‘>
bar
就是bar啦!
import numpy as npimport matplotlib.pyplot as pltx = np.array([1, 2, 3, 4, 5])y1 = xy2 = x ** 1.5width = 0.2plt.bar(x, y1, width)plt.bar(x + width, y2, width)plt.show()
这里做了个小技巧,用width作为偏移,画出多个bar
http://www.guofei.site/public/postimg2/matplotlib3_3.png‘>
scatter
scatter与plot的不同是,scatter可以分别指定每个点的大小
和颜色
import matplotlib.pyplot as pltfrom scipy.stats import uniformrv=uniform(loc=0,scale=1)x=rv.rvs(size=100)y=rv.rvs(size=100)plt.scatter(x,y,s=x*1000,c=y,marker=(5,1))plt.show()
http://www.guofei.site/public/postimg2/matplotlib3_4.png‘>
按照输入顺序,scatter的输入值分别代表:
1. 每个点的X坐标
2. 每个点的Y坐标
3. s参数指定点的大小(值和点的面积成正比)
4. c参数指定点的颜色,可以是数值或数据。
- 如果是数值则自动调用颜色映射表
- 如果是(N,3)或(N,4)数组,则代表RGB颜色
5. marker指定形状
- 第一个元素代表顶点数量
- 第二个元素代表样式
- 0多边形
- 1星形
- 2放射形
- 3圆形(忽略边数)
image
imread():读入图像
imshow():输出图像
img=plt.imread('unicorn.png')
对于彩色图像,返回的img是一个array,大小是(M,N,C),其中,
- M是图像的高度
- N是图像的宽度
- C=3&4是颜色通道
对于灰度图像,返回的array,大小是(M,N)
img取值范围是0~1
等高图
contour()#等高线contourf()#带填充效果的等高线
示例1
import matplotlib.pyplot as pltimport numpy as npfrom matplotlib import cmx = np.linspace(-3.0, 3.0, 100)y = np.linspace(-2.0, 2.0, 80)X, Y = np.meshgrid(x, y)Z = X * np.exp(-X ** 2 - Y ** 2)fig = plt.figure(1)ax1 = plt.subplot(121)ax2 = plt.subplot(122)cs1 = ax1.contour(X, Y, Z, 10)cs2 = ax2.contourf(X, Y, Z, 10, cmap=cm.PuBu_r)cbar = fig.colorbar(cs2) # 在figure上添加cs2对应的颜色条plt.clabel(cs1) # 在cs1的等高线上添加数字plt.show()
http://www.guofei.site/public/postimg2/matplotlib3_5.png‘>
示例2:隐函数的解
加入levels这个参数,可以画出对应的等高图,依次来画出隐函数的解,
下面的代码是画出
import matplotlib.pyplot as pltimport numpy as npx = np.linspace(-1.5, 1.5, 100)y = np.linspace(-1.5, 1.5, 80)X, Y = np.meshgrid(x, y)Z = (X ** 2 + Y ** 2) ** 4 - (X ** 2 - Y ** 2) ** 2ax = plt.subplot(111)cs = ax.contour(X, Y, Z, 10, levels=[0, 1], colors=['b', 'r'], linestyles=['-', ':'], linewidths=[2, 2])plt.clabel(cs)plt.show()
<
需要注意的是,由于源数据是离散值,所以等高图在某些区域是离散的片段,但实际上应当是连续值。
箭头图
quiver(X,Y,U,V,C)
- X, Y代表箭头起点的坐标
- U, V代表箭头对应的向量
- C代表颜色
示例
import numpy as npimport matplotlib.pyplot as pltdef f(x, y): return x * np.exp(-x ** 2 - y ** 2)def dev_f(f, x, y, dx=1e-6, dy=1e-6): v = f(x, y) vx = (f(x + dx, y) - v) / dx vy = (f(x, y + dy) - v) / dy return vx, vyX, Y = np.meshgrid(np.linspace(-2, 2, 20), np.linspace(-2, 2, 20))U, V = dev_f(f, X, Y)C = f(X, Y)plt.quiver(X, Y, U, V, C)plt.colorbar()plt.show()
- 【Python】【matplotlib】绘图函数
- 绘图: Python matplotlib简介
- python使用matplotlib绘图
- python matplotlib包 绘图
- Python:使用Matplotlib绘图
- Python中Matplotlib绘图
- python使用matplotlib绘图
- python-matplotlib绘图
- Python--Matplotlib绘图库
- matplotlib python绘图
- python matplotlib绘图
- 【Python】【matplotlib】绘图
- python中的matplotlib绘图问题
- python使用matplotlib绘图 -- barChart
- 【Python】Matplotlib绘图库初探
- python使用matplotlib绘图 -- barChart
- 使用 python Matplotlib 库绘图
- 使用 python Matplotlib 库绘图
- 心酸的Caffe安装之路 环境搭配 Ubuntu16.04+gtx1080+cuda8.0+cudnn5.1+opencv+Anaconda3+caffe
- rapidjson使用总结
- gradle android的依赖配置dependencies
- OpenResty 最佳实践学习--安装和helloworld(1)
- 泛型(Generics)
- 【Python】【matplotlib】绘图函数
- 3. Longest Substring Without Repeating Characters
- URI和URL的区别(转自: I'M G.Shine)
- Oil Deposits (简单深搜)积水问题
- 区域外点击执行函数
- SQL Server学习笔记1:如何使用软件以及创建第一个数据库
- 感知机
- POJ2318 计算几何简单题
- 第4周项目4- 建设双链表算法库(选做)