标签: matplotlib-3d

如何为 3D 网格线着色

我正在寻找一种方法来更改 3D 绘图网格线的颜色,但无法找到一种干净且简单的方法来实现此目的。我找到的唯一答案就在这里,但结果有点复杂。我想知道是否有一种更简单的方法可以使用 matplotlib 为 3D 绘图的网格线着色mpl_toolkits.mplot3d

在这里找到简单的例子

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='parametric curve')
ax.legend()

plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib gridlines matplotlib-3d

3
推荐指数
1
解决办法
3896
查看次数

3D 花式箭头补丁

你能用 3d 形式呈现这个箭头吗?

import matplotlib.patches as patches
style="Simple,tail_width=0.5,head_width=4,head_length=8"
kw = dict(arrowstyle=style, color=b)
a3 = patches.FancyArrowPatch((0, 0), (99, 100),connectionstyle="arc3,rad=-0.3", **kw, lw=cfg._sections['styles'].get('arrows'))
Run Code Online (Sandbox Code Playgroud)

我试过:

import matplotlib.patches as patches
style="Simple,tail_width=0.5,head_width=4,head_length=8"
kw = dict(arrowstyle=style, color=b)
a3 = patches.FancyArrowPatch((0, 0), (1, 1), (0.5, 1.5),connectionstyle="arc3,rad=-0.3", **kw, lw=cfg._sections['styles'].get('arrows'))
Run Code Online (Sandbox Code Playgroud)

错误是:

    a3 = patches.FancyArrowPatch((0, 0), (1, 1), (0.5, 1.5),connectionstyle="arc3,rad=-0.3", **kw, lw=1)
  File "/home/linux/.local/lib/python3.6/site-packages/matplotlib/patches.py", line 4068, in __init__
    raise ValueError("either posA and posB, or path need to provided")
ValueError: either posA and posB, or path need to provided
Run Code Online (Sandbox Code Playgroud)

或者至少将箭头放在 3d 图中的一个点上?

python matplotlib matplotlib-3d

3
推荐指数
1
解决办法
1445
查看次数

带剖面的 3D 曲面图

基本上,我有一个由一组时间序列组成的曲面图,我想在特定高度添加剖面图,以更好地了解一年中值高于所选阈值的时期。

由此:

在此输入图像描述

其中显示平面但不是剖面

对此:

在此输入图像描述

有什么建议吗?

使用 alpha 和相机仰角并没有解决问题

在此输入图像描述

平面似乎仍然在人物的前面,而不是作为一个截面

python graph matplotlib matplotlib-3d

2
推荐指数
1
解决办法
714
查看次数

如何创建彩色球体

我有一个数据集,它将 phi 和 theta 的元组映射到代表信号强度的值。我想将它们绘制在球体上。我只是按照 matplotlib 的演示进行操作,并根据我的用例调整了代码。

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

u = phi
v = theta
vals =vals/vals.max()
Map = cm.coolwarm
facecolors = Map(vals[:])

x = 10 * np.outer(np.cos(u), np.sin(v))

y = 10 * np.outer(np.sin(u), np.sin(v))

z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))

ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False, facecolors=facecolors)

plt.show()
Run Code Online (Sandbox Code Playgroud)

这会生成一条错误消息 IndexError: index 4 is out ofbounds for …

python matplotlib mplot3d matplotlib-3d

0
推荐指数
1
解决办法
5149
查看次数

标签 统计

matplotlib ×4

matplotlib-3d ×4

python ×4

graph ×1

gridlines ×1

mplot3d ×1