python matplotlib实现坐标投影的示例代码

 更新时间:2024年02月26日 11:56:40   作者:微小冷  
这篇文章主要为大家详细介绍了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坐标投影的资料请关注脚本之家其它相关文章!

相关文章

  • 在PyTorch中实现高效的多进程并行处理

    在PyTorch中实现高效的多进程并行处理

    PyTorch是一个流行的深度学习框架,一般情况下使用单个GPU进行计算时是十分方便的,但是当涉及到处理大规模数据和并行处理时,需要利用多个GPU,所以这篇文章我们将介绍如何利用torch.multiprocessing模块,在PyTorch中实现高效的多进程处理,需要的朋友可以参考下
    2024-07-07
  • python3获取当前文件的上一级目录实例

    python3获取当前文件的上一级目录实例

    下面小编就为大家分享一篇python3获取当前文件的上一级目录实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 详解使用Python处理文件目录的相关方法

    详解使用Python处理文件目录的相关方法

    这篇文章主要介绍了使用Python处理文件目录的相关方法,使用到了os模块,需要的朋友可以参考下
    2015-10-10
  • TensorFlow中权重的随机初始化的方法

    TensorFlow中权重的随机初始化的方法

    本篇文章主要介绍了TensorFlow中权重的随机初始化的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Python 搭建Web站点之Web服务器网关接口

    Python 搭建Web站点之Web服务器网关接口

    本文是Python 搭建Web站点系列文章的第二篇,接上文,主要给大家来讲述Web服务器网关接口WSGI的相关资料,非常详细,有需要的小伙伴可以参考下
    2016-11-11
  • django实现将修改好的新模型写入数据库

    django实现将修改好的新模型写入数据库

    这篇文章主要介绍了django实现将修改好的新模型写入数据库,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python绘图时,坐标轴负号显示不出来的解决

    python绘图时,坐标轴负号显示不出来的解决

    这篇文章主要介绍了python绘图时,坐标轴负号显示不出来的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python实现四个经典小游戏合集

    Python实现四个经典小游戏合集

    这篇文章主要介绍了利用Python编写一个经典小游戏的合集,包括:贪吃蛇,扫雷,俄罗斯方块,五子棋。感兴趣的小伙伴可以跟随小编一起学习一下
    2021-12-12
  • Python大数据处理之matplotlib.pyplot初步使用

    Python大数据处理之matplotlib.pyplot初步使用

    Matplotlib是Python中一个非常流行的数据可视化库,它提供了丰富的绘图工具,可以帮助我们轻松创建各种类型的图表,这篇文章主要介绍了Python大数据处理之matplotlib.pyplot初步使用的相关资料,需要的朋友可以参考下
    2025-08-08
  • 详解Python自建logging模块

    详解Python自建logging模块

    本篇文章给大家详细分析了Python自建logging模块的方法和代码分享,有需要的朋友参考学习下吧。
    2018-01-01

最新评论