Я пытаюсь сохранить свою фигуру боке в форматах png, svg и html. Рисунок состоит из нескольких линейных участков, выполненных в цикле. Файлы svg и html каким-то образом содержат только первый линейный график, хотя выходные данные png и html, которые открываются в браузере, показывают все линейные графики.
p = bokeh.plotting.figure(...)
colors = itertools.cycle(palette[10])
for i, color in zip(range(len(exp_labels)), colors):
p.line(
source=data.loc[data['experiment']==exp_labels[i]],
x=x,
y=y,
color=color,
legend=exp_labels[i]
)
bokeh.io.show(p) # figure in the browser shown fine
export_png(p, filename + '.png') # png export works fine
p.output_backend = "svg"
export_svgs(p, filename + '.svg') # svg file shows only first lineplot
bokeh.io.save(p, filename + '.html') # html file also shows only first plot
Если svg не может записать в один файл все графики, выполненные вцикл, несмотря на то, что они принадлежат одной и той же фигуре p
, мне интересно, возможно ли как-то отобразить сразу все графики с .groupby()
, поскольку все данные принадлежат одному фрейму данных, и решить эту проблему путемтакой подход.
UPD : Похоже, что основная проблема svg
, а html
имеет проблемы только из-за измененного output_backend
. Если сначала сохранить html
, то сохранится нормально. Однако до сих пор неясно, как сохранить svg
на всех линейных участках и как переключить output_backend
на какое-либо значение по умолчанию. Я не смог найти документацию для параметров output_backend