В Bokeh 0.5.0 невозможно указать размер диаграммы, а предыдущие версии отображаются в том же выходном файле.

Проблема «предыдущих версий» такая же, как указано в Bokeh обновлен до версии 0.5.0, теперь все предыдущие версии графика отображаются в одном окне. Я запускаю это в блокноте iPython; каждый раз, когда я перезапускаю ячейку, выходной html-файл показывает все предыдущие версии, а также новую.

Другая проблема заключается в том, что я не могу указать размер и/или соотношение сторон графика в выходном файле.

Вот весь скрипт:

x = [0.4, 0.6, 0.8, 0.5]
y = [0.8, 0.5, 0.8, 0.9]
import bokeh.plotting as bplt
bplt.output_file('output.html')
bplt.figure(tools="wheel_zoom", width=1000, height=3000)
bplt.hold()
bplt.circle(x, y, color='red', 
       line_color='black', fill_alpha = 0.8, size = 10,
       title = 'Ternary plot', background_fill='#dddddd')
bplt.line(x=[0,0.5],y=[1,0.134])
bplt.line(x=[0.5,1],y=[0.134,1])
bplt.line(x=[1,0],y=[1,1])
bplt.show()

Какие бы значения я ни устанавливал для ширины и высоты, на выходе всегда будет один и тот же размер и соотношение сторон.


person prooffreader    schedule 25.07.2014    source источник


Ответы (1)


width и height пришлось удалить как параметры для установки ширины и высоты графика из функций глифов (таких как circle и т. д.), потому что некоторые глифы также имеют собственные атрибуты width и height, и возник конфликт. Но, вероятно, его следовало сохранить для вызова figure в качестве псевдонимов для plot_width и plot_height. Я добавил билет, чтобы восстановить их как псевдонимы в figure:

https://github.com/ContinuumIO/bokeh/issues/897

Тем временем вы можете передать plot_width и plot_height в figure(...), и размер графика будет таким, как вы хотите.

Если вы хотите очистить состояние сеанса plotting.py, reset_output() было добавлено в 0.5.1. Вот полный рабочий скрипт:

x = [0.4, 0.6, 0.8, 0.5]
y = [0.8, 0.5, 0.8, 0.9]
import bokeh.plotting as bplt
bplt.reset_output()
bplt.output_file('output.html')
bplt.figure(tools="wheel_zoom", plot_width=100, plot_height=300)
bplt.hold()
bplt.circle(x, y, color='red', 
   line_color='black', fill_alpha = 0.8, size = 10,
   title = 'Ternary plot', background_fill='#dddddd')
bplt.line(x=[0,0.5],y=[1,0.134])
bplt.line(x=[0.5,1],y=[0.134,1])
bplt.line(x=[1,0],y=[1,1])
bplt.show()
person bigreddot    schedule 26.07.2014