У меня есть блокнот 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 выход.