【发布时间】:2018-10-30 21:37:50
【问题描述】:
我有一个 900k+ 行和 28 列的数据框。我正在使用我在 plotly 官方网站上的at this example 中找到的这段代码 sn-p:
import plotly.plotly as py
import pandas as pd
scatter = dict(
mode = "markers",
name = "y",
type = "scatter3d",
x = col1, y = col2, z = col3,
marker = dict( size=2, color="rgb(23, 190, 207)" )
)
clusters = dict(
alphahull = 7,
name = "y",
opacity = 0.1,
type = "mesh3d",
x = col1, y = col2, z = col3
)
layout = dict(
title = '3d point clustering',
scene = dict(
xaxis = dict( zeroline=False ),
yaxis = dict( zeroline=False ),
zaxis = dict( zeroline=False ),
)
)
fig = dict( data=[scatter, clusters], layout=layout )
# Use py.iplot() for IPython notebook
py.plot(fig, filename='3d point clustering')
我的 df 已经加载。请注意,col2 具有 'object' dtype。
我在 jupyter notebook 中运行它。当我运行这段代码时,一切似乎都正常,但我出现了这个警告:
UserWarning:
Woah there! Look at all those points! Due to browser limitations, the Plotly SVG drawing functions have a hard time graphing more than 500k data points for line charts, or 40k points for other types of charts. Here are some suggestions:
(1) Use the `plotly.graph_objs.Scattergl` trace object to generate a WebGl graph.
(2) Trying using the image API to return an image instead of a graph URL
(3) Use matplotlib
(4) See if you can create your visualization with fewer data points
If the visualization you're using aggregates points (e.g., box plot, histogram, etc.) you can disregard this warning.
此警告连续出现 7 次。看起来必须有一些限制才能在基于 Web 浏览器的 UI(如 jupyter notebooks)中制作此图。
我试图导入模块'plotly.graph_objs.Scattergl',但它说pyplot中没有这样的模块。
我只是不知道如何解决这个限制。如果无法做到这一点,我如何使用matplotlib 制作类似的情节?任何帮助将不胜感激。
非常感谢
【问题讨论】:
标签: python python-3.x matplotlib plotly