在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中绘制右手坐标系 的相关文章

  • 在 Python 的 matplotlib 中使用时间序列的百分位数设置颜色渐变

    我有一个时间序列 在一年的数组大小 365 10000 中 变量的每日值将超过 10 000 个 因为我将拥有大量数据 许多变量的许多时间序列 所以我希望仅保存百分位数 0 10 20 90 100 并在稍后的图中使用它们来设置颜色渐变显示
  • 如何更改单个群体的位置

    我正在绘制一个分组条形图 在其上覆盖群图和误差条 其中一个组只有一个栏 我希望它 与群和错误栏一起 出现在分配给这组栏的位置的中间 我设法移动了栏和错误栏 但不知道如何移动群 这是我的代码 import seaborn as sns imp
  • 如何绘制日期和月份

    我有一张随时间变化的每日趋势图表 年份与此处无关 我只想显示日期和月份 我知道你可以显示年份和月份 但事实并非如此 我尝试创建一个名为 Day Month 的新变量 import datetime as dt df Day df date
  • 拟合泊松直方图

    I am trying to fit a curve over the histogram of a Poisson distribution that looks like this 我修改了拟合函数 使其类似于泊松分布 其中参数 t 作
  • python 中 matlibplot 中散点图的缩放轴

    我正在使用 matlibplot 进行数据可视化 我的绘图共有 6502 个数据值 运行良好 但值接近且密集 例如 我的 y 轴值范围在 3 到 10 之间 我需要清楚地获取它们之间的每个点 即像 9 2 和 9 8 这样的值至少要以 1
  • 如何缩放图像的一部分并插入到 matplotlib 中的同一图中

    我想缩放数据 图像的一部分并将其绘制在同一个图中 看起来有点像这个图 是否可以在同一图中插入缩放图像的一部分 我认为可以用子图绘制另一个图形 但它绘制了两个不同的图形 我还阅读了添加补丁以插入矩形 圆形 但不确定将图像的一部分插入到图中是否
  • matplotlib 中无效的 rgba arg“#”

    我无法弄清楚在尝试在 matplotlib 中创建散点图时如何使用颜色 我正在尝试绘制具有不同颜色点的多个散点图来显示集群 colors 12efff eee111 eee00f e00fff 123456 abc222 000000 12
  • Matplotlib:以数据坐标中给定的宽度绘制线条

    我试图弄清楚如何绘制具有数据单位宽度的线条 例如 在下面的代码片段中 我希望宽度为 80 的线的水平部分始终从 y 40 延伸到 y 40 标记 并且即使坐标系的限制也保持这种状态改变 有没有办法用 matplotlib 中的 Line2D
  • 在 folium 中显示栅格数据(不处理任何数据值)。

    我正在尝试使用 folium 显示栅格类型数据 numpy 数组 这是我到目前为止所拥有的 import folium from folium plugins import ImageOverlay import numpy as np f
  • 在 x 轴上操作日期 Pandas Matplotlib

    我有一组非常简单的数据 如下所示 我正在寻找一种方法来绘制此堆积条形图并格式化 x 轴 日期 使其从 1996 年 31 月 12 日开始 到 2016 年 31 月 12 日结束 增量为 365 天 我编写的代码绘制了每个日期 因此 x
  • 如何将交互式 matplotlib 图形插入 tkinter 画布

    我正在尝试将交互式 matplotlib 图形 具有滑块 重置按钮和单选按钮的图形 放入 tkinter Canvas 中 我已成功添加非交互式图表 但当它变为交互式时找不到问题 我尝试将所有内容更改为使用 matplotlib Figur
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • 绘制随时间变化的分类数据计数

    我有一个数据框 df 其中有一列包含分类数据 ETH 带有 DateTimeIndex 我想绘制类别counts随着时间的推移 它们按天索引 我最好按年绘制它们 df pd DataFrame County 0 Bexar 3 Nueces
  • ipython/ pylab/ matplotlib安装和初始化错误

    我在 OS X El Captain 上安装了 matplotlib anaconda ipython 然而 即使在尝试以所有可能的方式设置环境变量之后 我仍无法启动 ipython shell pylab 版本 这是错误 ImportEr
  • AttributeError:tkagg没有属性cursord

    我最近重新安装了 anaconda 将目录从管理员帐户转移到我的个人帐户 以前 我对下面的代码没有任何问题 import matplotlib backends backend tkagg as tkagg defaultcursor tk
  • Matplotlib xlabel Arial 格式,其中一个单词为斜体

    我想创建一个 matplotlib 图形 其 x 轴标签采用 Arial 字体 并且有一个斜体字 我可以用乳胶字体创建带有 x 轴标签的图形 其中一个单词为斜体 我还可以在 Arial 中创建带有 x 轴标签的图形 只要我将整个标签设置为斜
  • 如何创建在特定范围内开始和结束的条形图

    我创建了一个计算机模型 只是为了好玩 来预测足球比赛结果 我进行了计算机模拟来预测一支球队将获得多少分 我得到了每个团队的模拟结果列表 我想绘制诸如置信区间之类的东西 但使用条形图 我考虑了以下选择 我考虑过使用 matplotlib 的烛
  • python 中的对数 y 轴 bin

    我正在尝试创建数据列的直方图并以对数方式绘制它 y axis 并且我不确定为什么以下代码不起作用 import numpy as np import matplotlib pyplot as plt data np loadtxt foo
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me

随机推荐

  • 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