相关疑难解决方法(0)

如何绘制相交的平面?

我想使用matplotlib或多或少地绘制我下面附着的图形,其中包括两个相交的平面,其中正确的透明度表示它们的相对方向,以及两个平面中的圆和矢量以2D投影.

我不确定是否有现成的包,这样做,任何提示?图片来源:M Strassler

python matplotlib

21
推荐指数
2
解决办法
8393
查看次数

Matplotlib 3D绘图zorder问题

我有一个由蓝色表面(绘制通过plot_surface)和红色球体(绘制通过scatter)组成的图.曲面的zorder设置为0,并且球体的zorder设置为1(尽管未设置任何zorder值会产生相同的结果).

您可以看到红色球体位于曲面的左侧: 在此输入图像描述

当我旋转绘图时,您可以看到红色球体开始消失在蓝色表面后面,即使它在它前面:

在此输入图像描述

直到红色球体完全消失: 在此输入图像描述

奇怪的是,对于某些角度/视图,红色球体重新出现并再次可见,例如: 在此输入图像描述

这里发生了什么?我已经阅读了其他一些与绘图/ zorder相关的问题,但我还没有看到这种行为,其中一个对象明显位于另一个对象的前方/前方,并且在大多数视角下无法正确显示.

如果我使蓝色表面透明,当它在下面的图中消失时,你可以看到表面后面的红色球体(所以看起来绘图库实际上认为它在表面后面).

python matplotlib

8
推荐指数
2
解决办法
2805
查看次数

Matplotlib 中的 3D 参数曲线不考虑 zorder。解决方法?

我正在使用 Matplotlib 设计一个三维插图。一切都很好,除了(红色)参数曲线得到错误的 zorder 而(绿色)参数曲面完全正确绘制。

由以下代码生成的输出: 由以下代码生成的输出

我知道 Matplotlib 在准确计算对象的 zorder 方面的能力有限,但由于它可以为参数曲面执行此操作,因此它似乎是 Matplotlib 中的一个错误。

也就是说,有没有办法强制正确的 z-ordering 只是为了让事情快速工作?似乎我只能说正确的透明蓝色平面位于其他一切之上。但是,将 zorder 参数放入 PolyCollection 似乎没有任何效果,并且将显式 zorder 参数放入绘制读取线的绘图函数中会弄乱其相对于绿色表面的顺序。

有没有办法将正确的蓝色透明表面强加于一切之上?这是我到目前为止的代码:

#!/bin/env python3

from pylab import *
from mpl_toolkits.mplot3d import *

from matplotlib.collections import PolyCollection
from matplotlib.colors import colorConverter
from matplotlib.patches import FancyArrowPatch

rc('text', usetex=True)
rc('font', size=20)

fig = figure(figsize=(11,6))
ax = fig.gca(projection='3d')

ax.set_axis_off()

def f(x,t):
    return t/2 * 0.55*(sin(2*x)+0.4*x**2-0.65)

c_plane   = colorConverter.to_rgba('b', alpha=0.15)

N = 50
y = linspace(-1,1,N)
t = linspace(0,2,N)
yy, tt = meshgrid(y, t) …
Run Code Online (Sandbox Code Playgroud)

python matplotlib mplot3d

6
推荐指数
2
解决办法
5366
查看次数

Gnuplot:尊重Gnuplot 3d多边形的深度顺序

我有一个完整城市的3D模型,并希望显示这些建筑物的等距视图.我使用gnuplot多边形,因为我认为我不能将pm3d用于坐标不在定义良好的网格上的多边形.多边形显示的颜色对应于它们获得的平均太阳辐照度.我还将地面多边形显示为线框,主要是自动设置xrange,yrange和zrange.

从遥远的地方看起来还不错,但是当你放大时,你会看到一些多边形的深度顺序是错误的.

这是导入SketchUp的CityGML模型: 在此输入图像描述

这就是Gnuplot的结果: 在此输入图像描述

你知道我怎么能以正确的顺序显示这些多边形吗?

这样的东西会很棒,但它似乎只能使用splot.

这是一个Gnuplot文件来查看问题(2个建筑物和4个屋顶):

set style line 1 linecolor rgbcolor "#777777" linewidth 1
set style increment user
set palette file "-"
0.00000 0.23137 0.22353 0.64314
0.17990 0.47843 0.34510 0.71765
0.32010 0.34902 0.17647 0.55686
0.43990 0.40784 0.10980 0.36471
0.59010 0.46275 0.09020 0.16863
0.78000 0.86667 0.41569 0.24314
0.92990 0.92549 0.66667 0.33725
1.00000 0.97647 0.91765 0.82745
e
set cbrange [50:150]
set cbtics 25
set format cb "%.0f W/m²"
unset xtics
unset ytics
unset ztics
unset border …
Run Code Online (Sandbox Code Playgroud)

3d render gnuplot

6
推荐指数
1
解决办法
409
查看次数

标签 统计

matplotlib ×3

python ×3

3d ×1

gnuplot ×1

mplot3d ×1

render ×1