Экспорт оффлайн SVG из сюжета только после взаимодействия - PullRequest
0 голосов
/ 23 октября 2018

У меня есть блокнот Jupyter, содержащий код для создания трехмерной диаграммы рассеяния с помощью Plotly offline.

Вот фрагмент кода, который я использую для рендеринга некоторых данных из фрейма данных с именем 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 выход.

...