matplotlib坐标投影

文章目录

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)形式显示世界的等积伪圆柱地图投影。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值