我有一个CSV文件,有5列,约2*104行,我需要可视化。
我导入的文件如下:
data = Import["res.csv", "CSV"];`
现在,我想用它生成很多视觉效果——在一个单一的情节上的所有5个维度以及各种横截面。
我的问题:
如果我想从我的数据中选择列1,4和5,并将它们馈送给ListPlot3D
,我该怎么做?
并且,列中的值可以分组。所以如果我想要ListPlot3D
列1 2 4 5,但是我想把列1和列2组合在同一个轴上,我怎么告诉Mathematica去做呢?
谢谢。
我讨厌不同意其他海报,特别是在它被接受之后,但是Transpose
是不必要的。您所要求的几乎所有内容都可以在Part
上下文中完成:
ListPlot3D[ data[[All, {1, 4, 5}]] ]
因为在Mathematica中矩阵是按行存储的,所以[[All, {1, 4, 5}]]
可以读成[[rows, columns]]
。更具体地说,All
在这里表示需要所有行,但也可以指定特定的行。另一个可能感兴趣的结构是Span
,它用于指定索引组,如果您的CSV文件包含标题行,可以使用
ListPlot3D[ data[[ 2 ;; , {1, 4, 5}]] ]
对于第二个要求,使用列1和列2作为x坐标,那么只需
ListPlot3D[ {data[[All, {2, 4, 5}]], data[[All, {1, 4, 5}]]} ]
,如果您希望去掉标题行,则将All
更改为2;;
。
如果我没理解错的话,那就是
ListPlot3D[Transpose[{data[[All, 1]], data[[All, 4]], data[[All, 5]]}]]
,对于多个集合:
ListPlot3D[
{
Transpose[{data[[All, 1]], data[[All, 3]], data[[All, 4]]}],
Transpose[{data[[All, 2]], data[[All, 3]], data[[All, 5]]}]
}
]