我正在可视化包含 400K 到 250 万个点的散点图。我预计在可视化之前需要进行下采样,但为了看看我在plotlyexpress 中使用 400k 数据集进行了多少试点测试,并且绘图快速、美观且响应迅速地弹出。
为了制作交互式图形,我确实需要使用plotly.graph_objects,因为我需要具有不同色阶的多条迹线,所以我用graph_objects制作了基本相同的图形,它不仅速度较慢,还使我的计算机崩溃了。
我真的很想尽可能少地进行下采样,并且我对这两种方法之间的纯粹性能差异感到惊讶,所以我想这可以归结为我的问题:
为什么存在如此大的性能差异?是否可以更改 graph_objects 中的布局/图形/任何参数以缩小差距?
这是一个片段,显示了我所说的基本相同的图表的含义:
fig = go.Figure()
fig.add_trace(go.Scatter(x = x_values, y = y_values, opacity = opacity, marker = {
'size': size,
'color': community,
'colorscale': colorscale
}))
Run Code Online (Sandbox Code Playgroud)
pacmap_map = px.scatter(x = x_values, y = y_values, color_continuous_scale=colorscale, opacity = opacity, color = community)
pacmap_map.update_traces(marker = {
'size': size
})
Run Code Online (Sandbox Code Playgroud)
我本来期望性能是相同的,或者至少在相同的范围内,但 Express 的工作就像一个梦想,而 graph_objects 会崩溃 jupyter 内核以及它运行的任何 IDE,所以有很大的差异。