python matplotlib实现坐标投影的示例代码
三维坐标
【plt】可以将二维图形嵌入到三维坐标系中,方法也很简单,只需用创建一个子坐标框架,并指定其投影方式为3d,并通过zdir参数指定一个额外的轴即可。
import numpy as np import matplotlib.pyplot as plt xs = np.linspace(0, 1, 100) ys = np.sin(xs * 2 * np.pi) / 2 + 0.5 fig = plt.figure() zs = ['x', 'y', 'z'] for i, z in enumerate(zs, 1): ax = fig.add_subplot(1,3,i, projection='3d') ax.plot(xs, ys, zs=0, zdir=z) ax.set_zlim(0,1) ax.set_xlim(0,1) ax.set_ylim(0,1) plt.show()
很显然,这是个伪 3 D 3D 3D曲线,但plot函数是有实力绘制真正的三维曲线的。但在三维空间中,需要三个坐标才能确定一个点的位置,空间中的一条三维曲线,需要三个坐标来共同表示
xs = np.linspace(0, 5, 100) ys = np.sin(xs * 2 * np.pi) / 2 + 0.5 zs = np.cos(xs * 2 * np.pi) / 2 + 0.5 ax = plt.subplot(projection='3d') ax.plot(xs, ys, zs) plt.show()
效果如下
极坐标
极坐标也是一种投影,只需将projection设为polar即可实现极坐标的绘制。并且在极坐标中,plot函数保留了默认自变量的功能,示例如下
r = np.arange(0, 2, 0.01) th = 2 * np.pi * r ax = plt.subplot(121, projection='polar') ax.plot(th, r) ax = plt.subplot(122, projection='polar') ax.plot(r) plt.show()
对于弧度而言,1是一个很大的数,相当于三分之一个圆周了,所以在右侧的极坐标图像中,出现了明显的棱角。
地理坐标
projection的含义是投影,除了3D坐标和极坐标之外,还支持多种地理坐标,下面就列举几个不同的地理坐标并绘图
projs = ['aitoff', 'hammer', 'lambert', 'mollweide'] fig = plt.figure() xs = ys = np.arange(-2,2,0.01) for i, p in enumerate(projs, 1): ax = fig.add_subplot(2,2,i,projection=p) ax.plot(xs, ys) plt.title(p) plt.grid() plt.show()
这四个投影的含义是
aitoff 埃托夫投影,经过改进的方位投影,采用了椭圆形经纬网,适用于绘制小比例的世界地图。
- hammer 哈默投影,一种等积伪圆柱投影。其横坐标是等面积圆柱投影和桑生投影的平均值,纵坐标由等面积条件导出,使整个世界置于椭圆内。
- lambert 兰勃特投影,一种等角圆锥投影。设想用一个正圆锥切于或割于球面,应用等角条件将地球面投影到圆锥面上,然后沿一母线展开成平面。
- mollweide 摩尔维特投影,一种以椭圆(轴比为 2:1)形式显示世界的等积伪圆柱地图投影。
以上就是python matplotlib实现坐标投影的示例代码的详细内容,更多关于python matplotlib坐标投影的资料请关注脚本之家其它相关文章!
相关文章
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
在Python中我们可以使用SQLAlchemy框架进行数据库操作,那么对应的在Flask框架中我们可以使用SQLAlchemy,下面我们就来看一下Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程2016-06-06简单掌握Python的Collections模块中counter结构的用法
counter数据结构被用来提供技术功能,形式类似于Python中内置的字典结构,这里通过几个小例子来简单掌握Python的Collections模块中counter结构的用法:2016-07-07
最新评论