仅在交互后才从密谋导出离线SVG

时间:2018-10-23 08:28:27

标签: plotly jupyter

我有一个Jupyter笔记本,其中包含用于通过离线Plotly生成3D散点图的代码。

这是我用来从称为subsetLog10的数据帧中渲染一些数据的代码块:

from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.graph_objs as go
import numpy as np

init_notebook_mode(connected=True)

x = subsetLog10.iloc[:, 0]
y = subsetLog10.iloc[:, 1]
z = subsetLog10.iloc[:, 2]

splot = go.Scatter3d(
    x=np.array(x),
    y=np.array(y),
    z=np.array(z),
    mode='markers',
    marker=dict(
        color='rgb(127, 127, 127)',
        size=1,
        symbol='circle',
        line=dict(
            color='rgb(204, 204, 204)',
            width=1
        )
    )
)

pdata = [splot]
layout = go.Layout(
    width=1024,
    height=1024,
    scene = dict(
        xaxis = dict(title=x.name, range = [0,6]),
        yaxis = dict(title=y.name, range = [0,6]),
        zaxis = dict(title=z.name, range = [0,6]))
)
fig = go.Figure(data=pdata, layout=layout)

iplot(fig, image='svg', filename='scatterplot.svg', image_width=1280, image_height=1280)

在笔记本电脑中效果很好。

我可以与散点图进行交互,并在旋转/平移/等之后导出PNG。单击散点图边缘的相机图标,将其移至所需轨道。

但是,快照文件scatterplot.svg是使用初始渲染设置导出的。这是一个问题,因为初始视图最终会切除部分轴刻度,刻度标签和轴标签。

是否有一种方法可以从中导出SVG,但仅在发生交互之后?

编辑

如果有用,我在这里发布了一个自包含的演示:

https://github.com/alexpreynolds/flow-cytometry-visualization

这应该演示散点图和SVG输出。

0 个答案:

没有答案