- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多行和多列的 CSV 文件。例如,假设我有以下 CSV(制表符分隔)文件:
Sample1 Sample2 Sample3 Sample4 Sample5
Log1 2.3 3.3 4.5 5.6 6.7
Log2 3.5 6.7 10.0 22.1 30
Log3 4.2 4.5 6.7 8.9 9.1
Log4 4.5 8.9 10.2 11.8 14.7
我已经检查了 pylab 库中的曲面图方法 here ,但我感觉我想做的和他们给出的例子不一样。因为我希望 X 轴是 CSV 第一列中的名称(Log1、Log2...Log4),Y 轴显示列名称(例如 Sample1、Sample2、... Sample5)。这些值将决定表面在 3D 绘图中的外观。
所以我想知道如何在 python 或任何其他工具中进行 3D 曲面绘图?任何答复将不胜感激。
编辑:
感谢@anon 下面的回答,我编写了以下 python 代码,但我不清楚如何将 CSV 文件中的值分配给 (X, Y, Z) 坐标。我在下面执行此操作的方法是按 x_axis (X 标签列表)的大小和 y_axis (Y 标签列表)的大小分配 X、Y 值,Z 值是我的 CSV 中的实际数字文件。但我下面的代码不起作用 - 需要一些额外的帮助。
csv_file_path='/path/to/my/CSV/my_file.csv'
mFile = open(csv_file_path, 'rb')
datafile = list(csv.reader(mFile, delimiter='\t'))
x_ax = [] # a list of X labels
y_ax = [] # a list of Y labels
row_data = [] # a list of row values
Z = [] # a list of row_data
first_line = True # skip the first line which is the header
for row in datafile:
print row[0]
summ = 0
if first_line:
y_ax = row[1:]
print y_ax
first_line = False
continue
x_ax.append(row[0])
row_data = row[1:]
data.append(row_data)
X = range(len(x_ax)) # use the length of x_ax as the X coordinate
Y = range(len(y_ax)) # use the length of y_ax as the Y coordinate
fig = plt.figure(figsize=(200, 6))
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax.set_xticklabels(x_ax)
ax.set_yticklabels(y_ax)
ax.set_title("Frequencies Surface Plotting")
surf = ax.plot_surface(X, Y, data, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
ax.set_zlim(0, 100)
fig.colorbar(surf, shrink = 0.5, aspect = 5)
plt.show()
来自 Pylab 的示例:
最佳答案
您可以将 x
和 y
轴标签更改为您想要的。例如:
fig = plt.figure(figsize=(14,6))
ax = fig.add_subplot(1, 2, 1, projection='3d')
x_ax = ["Log1", "Log2"] # etc ... just parse what you need from the CSV file
ax.set_xticklabels(x_ax)
y_ax = ["Sample1","Sample2"] # etc... just parse what you need from the CSV file
ax.set_yticklabels(y_ax)
plt.show()
产品:
这是你想要的吗?
关于python - 多个样本的 3D 曲面绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23797516/
在航空工程中,跑道平面以上的高度 (Z) 与: 从起飞开始的下降距离 (X) 满载飞机使用的跑道长度 (Y)。 我们希望从已知 x 和 y 值的观察点 z 的数组中找到 z=f(x,y)。 z 在 x
我正在尝试为图形设置表面 View ,但是仍然出现错误,表明我已经必须导入SView了。我尝试的一切似乎都无法正常工作。以下代码中缺少任何内容吗?还是我忘了添加一些东西。 Firstclass.jav
我有一个由以下内容生成的数据结构(其中 [a] func1 和 func2 是占位符函数,[b] i1 等是占位符变量值): def func1(x,y,z): return x+y/z de
我有一个 NURBS surface它有 4 个弯曲的边缘。 (我有曲线的 4 个贝塞尔点) 我想用轴上的切片平面(不如 3DSMAX 先进!)对 NURBS 曲面进行切片,并计算切片平面和 NURB
我正在实现 NURBS 曲面。我想要的只是在每次鼠标单击时 Y 轴上都有递减,所以它看起来像是有太阳或其他行星的重量。 #include #include int PI = 3.145; int
我在 Abaqus 中编写脚本,在那里我用切圆(如奶酪)粉碎圆形和正方形。我需要在部件之间放置 Contact,所以我需要 Surface。 宏管理器生成: s1 = a.instances['kol
我正在尝试使用 Python 和 Matplotlib 渲染由 给出的多面体的 3D 表面 但是我的代码(如下所示)似乎没有正确绘制它。应该怎么做呢? 尝试失败: %matplotlib inline
我想绘制一个 3d 曲面,其参数形式为: x = (-2 * (s^2 - t)^ 3) y = log(t*(t-2*s^2)+2*s^2) z = 1/(s^2-t) 其中 s、t 是参数。我使
关于从Python中的点云进行3D网格重建的问题,有几个主题。通常,当X,Y,Z坐标可用并且不存在体积表示时,通过激光扫描获取。我已经尝试了许多库: matplotlib, mayavi, open3
我必须编写一个 C++ 程序,根据未组织的点列表,计算这些点所在的近似曲面并生成相应的 NURBS。我已经看过 OpenNurbs,但没有这方面的功能,而 libNURBS 但包含的功能被标记为“研究
我有以下问题: 下面是我在屏幕上绘制立方体的方法: void drawCube() { //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
我一直在研究地形 LOD 算法,但主要逻辑在 CPU 上: 我尝试将大部分逻辑转换为 opengl 管道的曲面 segmentation 控制和评估阶段,但没有任何显示: 我将代码缩减为基本的“hel
我正在学习 OpenGL,我想要一个中间有轻微隆起的表面。我目前正在使用这段代码,但我不确定如何调整 ctrl 点以使其成为我想要的方式。它目前像 我希望它是这样的: 我不完全确定我应该使用哪些控制点
我在这里使用标准的 matplotlib surfaceplot 作为示例。 from mpl_toolkits.mplot3d import axes3d import matplotlib.pyp
我想使用 R 包 rgl 绘制相交曲面。我有一个 3D 数据数组,在恒定“z”(数组 [,,n])处绘制曲面没有问题。但是,我不知道如何在同一个 rgl 图上绘制垂直面 (array[n,,])。 示
我正在创建一个建模软件。我的模型都是由平面多边形组成的,它们只是我用 OpenGL 显示的一组有序顶点。我已经进行了大量搜索,但令我惊讶的是,我没有找到与我正在寻找的应用程序相关的太多信息。 我正在尝
我使用了示例 here将我的镶嵌回调移动到不同的类。 代码编译,但回调代码永远不会执行。 回调类: template class SingularCallBack { public: typ
我有兴趣寻找软件来计算 3D 多面体的精确中轴(或您选择的术语!)。我想输出将是一个三角形面的列表,可能是边和顶点,代表内侧表面的连接点、薄片和接缝。理想情况下,我想要可以处理所有多面体的东西,包括凹
我想在 linux (fedora 12) 下使用 GTK 3 创建一个窗口,并使用 cairo-gl 后端在其上绘制一个简单的矩形,为此我想创建一个 cairo-gl 表面。我该怎么做,任何人都可以
我有 6 个点,它们都位于球体的表面,并且是八面体的顶点。我怎样才能在 3d 轴上探索球体内的这个八面体的表面? 我有以下代码,但它没有达到我的预期: from mpl_toolkits.mplot3
我是一名优秀的程序员,十分优秀!