我知道对于4d颜色图(3d表面,颜色由第4个字段给出),我可以使用以下格式的数据文件
# X Y Z C
1 1 0 4
1 2 1 3
2 1 4 2
2 2 4 5
...
然后使用
set pm3d
splot "datafile.dat" u 1:2:3:4 with pm3d
另一方面,我知道如何制作一个简单的曲面图,其中X和Y值是隐式的,而Z值是矩阵格式的:
#Z DATA ONLY
0 1
4 4
splot "datafile.dat" matrix
有没有办法用这种矩阵格式制作4d彩色图?例如,从一个文件中获取Z数据,
我有一个用matplotlib制作的3d图。现在,我希望填充绘制的线和x,y轴之间的垂直空间,以突出显示z轴上直线的高度。在2d图上,这将用fill_between来完成,但是对于3d图,似乎没有类似的地方。有人能帮忙吗?
这是我目前的代码
from stravalib import Client
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
... code to get the data ....
mpl.rcParams['legend.fontsize'] =
我有两个用R制作的3d图,有两个不同的功能:
x <- c(0,50,100,150,200,250,300,350,400,450)
y <- c(0,50,100,150,200,250,300,350,400,450)
z <- c(1,2,1,1,2,1,2,1,2,1)
plot_ly(x=x,y=y,z=z)
scatterplot3d(x, y, z)
我想在这两幅图中画出以下两条线和它们之间的交集区域:
在两个图中绘制的线
我知道如何做一个简单的二维图,我想添加z级。我试着这样做:
map = {}
for z = 1, 10 do
map[z] = {}
for x = 1, 10 do
map[x] = {}
for y = 1, 10 do
map[x][y][z] = 0
end
end
end
但这并不是没有用的。那么,我如何制作一个简单的小"3d“地图呢?我哪里搞错了?请随意使用您自己的代码,但如果可以,请在lua上执行。
我试着用Pygame和Cython制作3d游戏,但是分别修改PixelArray的每个像素非常慢(在400*400 PixelArray上需要60 ms )。我使用这一行来修改像素的颜色:
pixelArray[x,y] = 0xFF00FF
我尝试使用整数而不是十六进制值,但是没有明显的区别。我用于更改像素的函数使用了上面所示的线条:
cdef void paint_pixel(zArray,pixelArray,int x,int y,int z,color):
if x < len(zArray) and y < len(zArray[0]):
if
我正在处理x,y和z的数据,以得到一个高低的地形图。Z是位移传感器。我需要用渐变绘制地形图。我现在有一个3D散点图和一个使用matplotlib小部件的等高线图。这些工作很好,但线框地图或顶图地图将工作最好。无论是2D还是3D工作也是如此。提前谢谢你!
当前产出:
我所努力达到的目标的例子:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import holoviews as hv
from bokeh.models import ColumnDataSource
from mpl_tool
我正在使用R中的plotly包来绘制曲面图和等高线图: # Load package
library(plotly)
# Simulate the data for plotting
x <- y <- seq(from = 0, to = 100, by = 1)
z1 <- outer(X = x, Y = y, FUN = function(x, y) x^0.2 * y^0.3) # data for surface plot
# Draw surface plot (3D)
plotly::plot_ly(z = z1) %>%
plotly::ad
我正在尝试使用matplotlib中3D表面绘图的色彩映射表功能,根据来自另一个数组的值而不是z值来给表面着色。曲面图的创建和显示如下所示:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def gauss(x, y, w_0):
r = np.sqrt(x**2 + y**2)
return np.exp(-2*r**2 / w_0**2)
x = np.linspace(-100, 100, 100)
y = np.linspace(
我正在尝试制作一个有两种颜色的3D图。一种颜色用于大于零的值,另一种颜色用于小于零的值。我只是不知道如何在代码中实现这一点。
下面是我当前的代码:
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import matplotlib.tri as mtri
import pandas as pd
import numpy as np
df = pd.DataFrame.from_csv('...temp\\3ddata.csv',
我有一个三维的表面图。我还想用2D绘制这个图的切片,并以某种方式在切片的3D图上指明这些切片的来源(例如将切片上的点着色以“突出显示”该切片,或绘制一个相交平面或其他东西)。
下面是一个示例,我只是将一个特定的行设置为0,这样我就可以看到切片在3D图上的位置。
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
# Grid and test function
N = 29;
x,y = np.linspace(-1,1, N*2), np.linspace(-
我在这里有相当具体的任务。假设我有5个变量的函数。我想要制作一个3d图,其中我将以2个变量作为变量,3个变量作为固定的参数。下面是一个示例:
import matplotlib.pyplot as plt
import matplotlib
from mpl_toolkits.mplot3d import axes3d
import numpy
#desired function is for example f(x, y, {a,b,c}) = x*a/((y+b)*(y+c))
a = 3
b = 8.5
c = 3.1
x = [i for i in range(-10,10,1)]
我知道我可以通过执行以下操作在MATLAB中创建3D曲面图:
x = linspace(1,10,100);
y = linspace(10,20,100);
[X Y] = meshgrid(x,y);
Z = X * Y;
surf(X,Y,Z);
但这要求生成的高度图的所有节点都排成一列。我有一组数据,其中包含任意点(x,y)和高度(z)。有没有一种简单的方法来绘制图形,它将以类似于surf的方式在点之间生成一个表面
我一直在尝试以数组作为输入来绘制3D图像。为了测试,我做了一个小np.array
ar = np.array([[1,2,3],[4,5,6],[7,8,9]])
我的想法是使用x位置作为x值,y位置作为y值,每个位置的值作为z值。
fig = plt.figure(figsize=(12,10))
ax = fig.add_subplot(111, projection='3d')
plt.title("Titel")
X = range(len(a))
Y = range(len(a))
Z = a
ax.plot_surface(X,Y,Z, cmap=
我用matplotlib制作3d图,我总是得到一个奇怪的框架,在我的图周围有一个规范化的比例。它是从哪里来的,我怎样才能摆脱它?
下面是一个让我想到问题的示例代码:
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
x = np.linspace(0,10)
y = np.linspace(0,10)
z = np.linspace(0,10)
# ---