cqc*_*991 52 python matplotlib jupyter-notebook
我使用Jupyter Notebook来分析数据集.笔记本中有很多情节,其中一些是3d图.
我想知道是否有可能使3d绘图具有交互性,所以我可以稍后再详细介绍它?
也许我们可以在上面添加一个按钮?点击它可以弹出一个3d图,人们可以缩放,平移,旋转等.
我的思想:
这不适合我的情况,因为我需要在3d情节之后继续绘图.%qt会影响以后的情节.
mpld3在我的情况下几乎是理想的,不需要重写任何东西,与matplotlib兼容.但是,它只支持2D绘图.我没有看到任何有关3D的计划(https://github.com/mpld3/mpld3/issues/223).
没有在bokeh图库中找到3d绘图的任何实际示例.我只找到使用的https://demo.bokehplots.com/apps/surface3dvisjs.
因为我需要的只是直线和外观,是否可以使用浏览器中的js将数据传递给js plot以使其具有交互性?(然后我们可能还需要添加3d轴.)这可能类似于visjs,和mpld3.
eld*_*d-a 58
尝试:
%matplotlib notebook
编辑JupyterLab用户:
然后不再需要上面的魔术命令,如示例中所示:
# Enabling the `widget` backend.
# This requires jupyter-matplotlib a.k.a. ipympl.
# ipympl can be install via pip or conda.
%matplotlib widget
# aka import ipympl
import matplotlib.pyplot as plt
plt.plot([0, 1, 2, 2])
plt.show()
最后,请注意Maarten Breddels的回复 ; 恕我直言ipyvolume确实非常令人印象深刻(和有用!).
Ole*_*leb 10
您可以使用Plotly库。它可以直接在Jupyter Notebook中渲染交互式3D图。
为此,您首先需要通过运行以下命令安装Plotly:
pip install plotly
您可能还想通过运行以下命令来升级库:
pip install plotly --upgrade
之后,在Jupyter Notebook中,您可以编写如下内容:
# Import dependencies
import plotly
import plotly.graph_objs as go
# Configure Plotly to be rendered inline in the notebook.
plotly.offline.init_notebook_mode()
# Configure the trace.
trace = go.Scatter3d(
    x=[1, 2, 3],  # <-- Put your data instead
    y=[4, 5, 6],  # <-- Put your data instead
    z=[7, 8, 9],  # <-- Put your data instead
    mode='markers',
    marker={
        'size': 10,
        'opacity': 0.8,
    }
)
# Configure the layout.
layout = go.Layout(
    margin={'l': 0, 'r': 0, 'b': 0, 't': 0}
)
data = [trace]
plot_figure = go.Figure(data=data, layout=layout)
# Render the plot.
plotly.offline.iplot(plot_figure)
结果,以下图表将在Jupyter Notebook中为您绘制,并且您将能够与其进行交互。当然,您将需要提供您的特定数据,而不是建议的数据。
| 归档时间: | 
 | 
| 查看次数: | 68132 次 | 
| 最近记录: |