在mplot3d中绘制右手坐标系

2023-12-31

我想从 Python 创建 3D 坐标变换图。例如,我想创建以下图像(由 TikZ 静态生成):

经过一番搜索,我找到了以下程序:

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.patches import FancyArrowPatch
from mpl_toolkits.mplot3d import proj3d


class Arrow3D(FancyArrowPatch):
    def __init__(self, xs, ys, zs, *args, **kwargs):
        FancyArrowPatch.__init__(self, (0, 0), (0, 0), *args, **kwargs)
        self._verts3d = xs, ys, zs

    def draw(self, renderer):
        xs3d, ys3d, zs3d = self._verts3d
        xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M)
        self.set_positions((xs[0], ys[0]), (xs[1], ys[1]))
        FancyArrowPatch.draw(self, renderer)


fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
arrow_prop_dict = dict(mutation_scale=20, arrowstyle='->', shrinkA=0, shrinkB=0)

a = Arrow3D([0, 1], [0, 0], [0, 0], **arrow_prop_dict, color='r')
ax.add_artist(a)
a = Arrow3D([0, 0], [0, 1], [0, 0], **arrow_prop_dict, color='b')
ax.add_artist(a)
a = Arrow3D([0, 0], [0, 0], [0, 1], **arrow_prop_dict, color='g')
ax.add_artist(a)

ax.text(0.0, 0.0, -0.1, r'$o$')
ax.text(1.1, 0, 0, r'$x$')
ax.text(0, 1.1, 0, r'$y$')
ax.text(0, 0, 1.1, r'$z$')

ax.view_init(azim=-90, elev=90)
ax.set_axis_off()
plt.show()

结果看起来并不像人们通常在书本上看到的那样:

此外,当我包含轴时,原点不在三个平面的交点处,而这正是我期望的位置。


您可以通过更改以下行来更改 3D 轴的视图:

ax.view_init(azim=-90, elev=90)

to

ax.view_init(azim=20, elev=10)

重现您的 TikZ 图,或根据您的喜好将视角更改为任何其他值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在mplot3d中绘制右手坐标系 的相关文章

  • 如何在 Pandas 中叠加“一天”内的数据进行绘图

    我有一个数据框 里面有一些 更有意义 数据格式如下 In 67 df Out 67 latency timestamp 2016 09 15 00 00 00 000000 0 042731 2016 09 15 00 16 24 3769
  • 如何将填充轮廓投影到 3D 曲面图上

    我只是想在 3D 中绘制一个表面及其轮廓 就像this http matplotlib org examples mplot3d contourf3d demo2 html例子 这是我用来执行此操作的代码 import matplotlib
  • matplotlib 轴标签偏移量的因素和变化

    在 matplotlib 中的轴刻度标签上 有两种可能的偏移量 factors and shifts 在右下角 1e 8 是一个 因子 1 441249698e1 是一个 移位 这里有很多答案展示了如何操纵两个都 matplotlib 将轴
  • mpld3图,注释问题

    我正在使用 mpld3 在 Intranet 网站上显示图形 我正在使用将图形保存到字典并使用 mpld3 js 在客户端渲染它的选项 除非我想使用注释 否则该图呈现良好 这些显然是抵消的 我不明白为什么 因为即使我将偏移量设置为 0 0
  • Python:如何在烧瓶中显示 matplotlib [重复]

    这个问题在这里已经有答案了 我对 Flask 和 Matplotlib 很陌生 我希望能够显示我在某些 html 中生成的简单图表 但我很难弄清楚如何实现 这是我的Python代码 from flask import Flask rende
  • matplotlib pyplot:子图大小

    如果我绘制如下所示的单个图 它将具有 x y 大小 import matplotlib pyplot as plt plt plot 1 2 1 2 但是 如果我在同一行中绘制 3 个子图 则每个子图的大小均为 x 3 y fig ax p
  • 如何以最大窗口形式保存 matplotlib 图而不是默认大小?

    有人知道我应该如何解决这个问题吗 我知道有一个保存按钮 我可以手动执行此操作 但我正在绘制 100 多个图表 所以我希望有一种方法可以自动执行此操作 我正在使用 TkAgg 后端 并寻找任何可能的解决方案 通过在我的绘图函数末尾使用以下内容
  • matplotlib 的上限/下限

    我想用误差线绘制一些数据点 其中一些数据点只有上限或下限 而不是误差线 所以我尝试使用索引来区分带有误差条的点和带有上限 下限的点 但是 当我尝试这样的事情时 errorbar x i y i yerr ymin i ymax i 我收到错
  • Seaborn 条形图条之间没有空格

    我使用下面的代码创建了一个 Seaborn 条形图 它来自https www machinelearningplus com plots top 50 matplotlib visualizations the master plots p
  • 使用每日频率格式化 x 轴

    我正在尝试获取每日数据图 我有 3 个月的数据 每天都很难指出 如何格式化 x 轴 以便我可以获得每个日期 可以使用以下命令更改主要刻度的频率set major locator mdates DayLocator interval 5 如下
  • 使用 matplotlib 从 TeX 创建数学表达式的图像

    使用 python 库 matplotlib 我发现了这个问题的解决方案 在 PyQt 中 很好地 显示代数表达式 https stackoverflow com questions 14097463 displaying nicely a
  • 在 Plotly Density_Mapbox 上添加 GeoJSON 等高线作为图层

    我想在上面添加天气轮廓plotly density mapbox地图 但我不确定必要的步骤 首先 我创建了一个matplotlib等值线图以可视化数据 然后 我用了geojsoncontour创建一个geojson文件来自所说matplot
  • 如何获取 Matplotlib 生成的散点图的像素坐标?

    我使用 Matplotlib 生成散点图的 PNG 文件 现在 对于每个散点图 除了 PNG 文件之外 我还会also就像生成散点图中各个点的像素坐标列表一样 我用来生成散点图 PNG 文件的代码基本上是这样的 from matplotli
  • Matplotlib 将颜色图 tab20 更改为三种颜色

    Matplotlib 有一些新的且非常方便的颜色图 选项卡颜色图 https matplotlib org examples color colormaps reference html 我错过的是生成像 tab20b 或 tab20c 这
  • Matplotlib 文本尺寸

    是否可以确定 matplotlib 文本对象的尺寸 如何找到以像素为单位的宽度和高度 Thanks Edit 我想我已经找到办法了 我在下面举了一个例子 import matplotlib as plt f plt figure r f c
  • 如何确保我的 matplotlib 轴属于自定义类?

    我有一个自定义图形类 并希望确保与其关联的所有轴 无论是使用subplots or twinx 等具有自定义行为 现在 我通过在创建每个轴后将新方法绑定到每个轴来实现这一点 例如通过使用 import types def my ax met
  • matplotlib:在次要标签下绘制主要刻度标签

    这看起来应该很容易 但我不知道该怎么做 我有一个 X 轴上有时间的图 我想设置两组刻度 小刻度显示一天中的小时 大刻度显示日 月 所以我这样做 set date ticks to something sensible xax ax get
  • Tkinter:通过多处理启动进程会创建不需要的新窗口

    我计划围绕数值模拟编写一个小型 GUI 这就是我现在使用 Tkinter 的原因 模拟应在单独的进程中从 GUI 启动 为了玩一下 我定义了一个函数 random process 来生成成对的 randn 数字 这应该是一个真正的模拟过程
  • 在Python中整齐地绘制PMF

    有没有一个库可以帮助我在 python 中整齐地绘制样本的概率质量函数 如下所示 通过matplotlib pyplot的stem模块 matplotlib pyplot stem args kwargs from matplotlib p
  • Python:按条件绘制多个正/负条形图

    这是我第一次用 python 绘制条形图 我的 df 操作 key descript score 0 noodles taste 5 1 noodles color 2 2 noodles health 3 3 apple color 7

随机推荐

  • Angular DatePicker - 多个指令 > [datepicker, datepicker]

    我正在尝试使用 720Kb 日期选择器 https github com 720kb angular datepicker https github com 720kb angular datepicker 使用简单的示例时
  • 如何在批处理文件中提及 C:\Program Files

    我需要从批处理文件调用 C Program Files 目录中的 exe 文件 我们如何在批处理文件中提及目录名称 Program Files 我收到类似 C Program not found 的错误 我认为需要在中间添加 或 但无法得到
  • C# 中的文件和文件夹的递归列表[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我编写此代码是为了在 C 中递归列出文件和文件夹 var filesInTheCurrentDirectory System IO Direct
  • curl 与浏览器的结果不同

    我正在尝试使用curl 从命令行下载以下URL 如果通过浏览器请求相同的 URL 则能够获取图像 但对于curl 服务器终止SSL握手 只是为了使用完全相同的参数 我尝试了 google chrome 和 firefox 的 开发人员工具
  • Rails - 使用 ruby​​gems 安装电子表格 gem 时出错

    我希望能够在 Rails 中处理 Excel 电子表格 所以我正在使用spreadsheet图书馆 但是 当我使用 ruby gems 安装电子表格时 出现异常 Successfully installed spreadsheet 0 7
  • 通过提供邮政编码获取位置名称

    当用户输入邮政编码时 我需要显示位置和城市名称 如何获取对应的位置名称 我会使用像这样的网站 http www zipinfo com search zipcode htm http www zipinfo com search zipco
  • WPF WebBrowser 控件是否支持放大/缩小?

    对于 WPF WebBrowser 控件 有没有办法复制 Internet Explorer 的缩放功能 换句话说 Internet Explorer 具有菜单 视图 gt 缩放 gt 75 可以以 75 的比例呈现网页 有没有办法让嵌入在
  • Android 视图转换动画列表?

    是否有可用于在两个视图之间转换的所有动画的列表 IE 缩放 滑动 脸部等 我似乎无法在 SDK 中或通过搜索 Google 找到完整的列表 此外 是否有任何演示应用程序可以显示所有这些内容 以便我可以评估哪个最适合特定用例 无法创建完整的动
  • 将对象列表作为外键

    如果我有两节课 public class Event public int EventId get set public string EventName get set and public class Dog public int Do
  • 如何验证对 PHP 文件的 AJAX 请求?

    在我的网站上 我有一个注册页面 该页面会发出 AJAX 请求来检查用户名输入后是否可用 该文件名为 check php 与 Registration php 文件位于同一目录中 当数据发布到 check php 时 它将在 MySQL 数据
  • 您网站上的多个 signalR 连接/集线器

    如果我有多个页面可以使用多个集线器类 那么管理此问题的最佳方法是什么 例如 导航到网站中的另一个页面并本质上 重新打开 与上一页上打开的同一集线器类的连接是否不好 我是否正确地认为在一个页面上打开多个集线器连接是可以的 因为它们都统一在一个
  • 如何开始对新旧代码进行单元测试?

    我承认我几乎没有单元测试的经验 我不久前尝试过 DUnit 但放弃了 因为我的应用程序中的类之间存在太多依赖关系 这是一个相当大的 大约 150 万行源代码 Delphi 应用程序 我们是一个维护它的团队 目前的测试是由一个在发布之前使用它
  • SupportMapFragment 不支持 AndroidX Fragment

    import com google android gms maps SupportMapFragment import androidx fragment Fragment private SupportMapFragment mMapF
  • 如何使用python删除循环列表的元素直到只剩下一个元素? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我将如何迭代从 1 到 100 的列表 删除从第一个元素开始的所有其他元素 然后重复该步骤 直到列表中只剩下一个元素 我是否必须使用循
  • 文件名中包含两个句点的 htaccess 正则表达式

    我现在有这个表达式 需要site com index php to site com index RewriteCond SCRIPT FILENAME d RewriteRule 1 php NC L 我需要让它接受包含两个句点的文件名
  • Postgresql JSONB 即将到来。现在该用什么?商店? JSON? EAV?

    在经历了关系型 DB NoSQL 研究辩论之后 我得出的结论是我将继续使用 PG 作为我的数据存储 该决定的一个重要部分是宣布 JSONB 即将推出 9 4 我的问题是我现在应该做什么 从头开始构建一个应用程序 知道我想迁移到 我的意思是立
  • 奇怪的 ASP.NET AJAX Bug / 32 位到 64 位

    自从升级到 Windows 2008 64 位后 我的网站出现了奇怪的错误 我的大部分应用程序池都在 64 位模式下运行 除了一个之外 所有应用程序池都用于旧版 ASP NET 1 1 应用程序 在 64 位运行的网站上 我收到来自 ASP
  • 发布消息时出现“无法识别的 Windows 套接字错误:0:接收失败”

    我正在尝试通过 HttpClient 将 HTTP POST 发布到启用了客户端身份验证的服务器 这是我的代码 public class Send2Remote private static String sslMode null priv
  • 具有 mpz/mpfr 值的 numpy 数组

    我想要一个带有 mpz mpfr 值的 numpy 数组 因为我的代码 import numpy as np import gmpy2 A np ones 5 5 print A gmpy2 mpfr 1 生成 RuntimeWarning
  • 在mplot3d中绘制右手坐标系

    我想从 Python 创建 3D 坐标变换图 例如 我想创建以下图像 由 TikZ 静态生成 经过一番搜索 我找到了以下程序 import numpy as np from matplotlib import pyplot as plt f