基于数据大小绘制等值面问题:它不会绘制,但也不会给出错误消息

问题描述 投票:0回答:1

我是 Python 初学者,正在为工作中的一项任务尝试数据可视化。简而言之,我需要可视化 3D 数据点云,我认为等值面函数最符合我的期望。我有三个不同的数据集,描述机翼周围的特定流动剖面,仅通过分辨率来区分。

我的问题是;下面的代码仅适用于最低分辨率,如标题所示,适用于其他两个更大(中、高)分辨率的数据集代码,既不显示错误代码,也不提供可交互的图形输出:

import pandas as pd
import plotly.graph_objects as go
import plotly.io as pio
pio.renderers.default="browser"

file_name = "folder_path/dataset.dat"
df = pd.read_csv(filepath_or_buffer=file_name, skiprows = 2, sep = " ", header = None, names = ["x", "y", "z", "I"])

x = df["x"]
y = df["y"]
z = df["z"]
I = df["I"]

fig = go.Figure(data = go.Isosurface(x = x, y = y, z = z, value = I,
                                      isomin = 0,
                                      isomax = 0.99,
                                      surface_count = 10,
                                      colorbar_nticks = 10,
                                      surface_fill=0.4,
                                      colorscale = 'Blackbody'))
fig.show()

数据集是一个非常简单的 ascii 文件,有 4 列。最低分辨率为 97920 行,中等分辨率为 498883 行,最高分辨率为 2883836 行。

为了进一步提供详细信息,我附上了两张图,其中一张是从最低分辨率数据集成功输出的;

功能等值面输出

另一个是中型数据集没有错误消息的结果:

等值面输出不起作用

有人可以向我解释这怎么可能吗?本质上我该如何解决这个问题?

附言:

我尝试了除 html 数据(即浏览器选项)之外的输出格式,例如 png,结果完全相同。

我还尝试在 Spyder 和 Jupyter Lab 等不同平台上运行它,但都给出相同的结果。

第二次编辑 - 15.07.2024:我还尝试了 Volume() 函数而不是 Isosurfaces() 函数;结果还是一样...

python plotly dataset visualization isosurface
1个回答
0
投票

好吧,经过长时间的艰苦研究,我发现了另一个使用 scatter_3d 函数的示例,其中当与大量数据集一起使用时,它不会再次绘制。以下是该特定帖子的链接:

https://community.plotly.com/t/unable-to-create-3d-scatter-plot-for-more-than-1-million-points/60050/2

显然必须使用更强大的可视化库才能使用 python 显示大型数据集!

© www.soinside.com 2019 - 2024. All rights reserved.