2016-10-27 6 views
0

Я использую Bokeh 0.11.1, и pip install --upgrade bokeh сообщает, что использую последнюю версию.Как изменить размер метки метки bokeh.charts?

Я могу определить, как изменить параметры размера текста по оси x для bokeh, используя bokeh.plotting, но не в диаграммах боке. В приведенном ниже коде, если он запущен в ноутбуке Jupyter, будут показаны очень плотные метки оси X. Я бы хотел, чтобы шрифт был меньше - какие-либо советы о том, как это сделать?

import pandas as pd 
data = pd.read_csv("https://raw.githubusercontent.com/pm0kjp/datastore/master/river_data.csv") 

import bokeh.charts 
import bokeh.plotting 
bokeh.plotting.output_notebook() 

tooltips=[ 
    ('Water Site ', '$x'), 
    ('Average of Enterococcus Count ', '$y') 
] 

p = bokeh.charts.Scatter(data, x='Site', y='EnteroCount', 
     title="Swimming Holes By Average Enterococcus Count", ylabel="Enterococcus Count", tooltips=tooltips) 
p.width=1000 
bokeh.charts.show(p) 

Документация предположил бы, что я мог бы просто добавить p.yaxis.axis_label_text_font_size = "8pt", но если я делаю это я получаю ошибку AttributeError: 'Chart' object has no attribute 'yaxis'.

ответ

3

Существует раздел руководства пользователя, посвященный styling visual properties, включая стиль в стиле axis labels. С участков, созданных bokeh.charts и bokeh.plotting как решить тот же набор объектов низкого уровня, устанавливая свойства идентичны в любом случае:

p.yaxis.axis_label_text_font_size = "8pt" 

Вот полный рабочий пример для 0.12.3:

In [1]: import bokeh 

In [2]: bokeh.__version__ 
Out[2]: '0.12.3' 

In [3]: import pandas as pd 
    ...: data = pd.read_csv("https://raw.githubusercontent.com/pm0kjp/datastore/master/river_data.csv") 
    ...: 

In [4]: import bokeh.charts 

In [5]: tooltips=[ 
    ...:  ('Water Site ', '$x'), 
    ...:  ('Average of Enterococcus Count ', '$y') 
    ...: ] 
    ...: p = bokeh.charts.Scatter(data, x='Site', y='EnteroCount', 
    ...:   title="Swimming Holes By Average Enterococcus Count", ylabel="Enterococcus Count", tooltips=tooltips) 
    ...: p.width=1000 
    ...: 

In [6]: p.yaxis.axis_label_text_font_size = "4pt" 

In [7]: bokeh.charts.output_file("/tmp/chart.html") 

In [8]: bokeh.charts.show(p) 

И вот результат, с крошечной наклейкой оси у:

enter image description here


Если вы не можете обновить до версии 0.12 по какой-то причине, вы можете сделать:

In [12]: from bokeh.models import Axis 

In [13]: p.select(type=Axis) 
Out[13]: 
[LinearAxis(id='54b21a9f-22e0-4f7a-b809-8d4f755a444e', ...), 
CategoricalAxis(id='b52e7b2c-2b18-4578-be42-4fbfba17af60', ...)] 

получить Ахольд всех объектов осей, которые можно изменять непосредственно, установив их axis_label_text_font_size собственности. Но вам нужно будет определить, какая ось x, а какая y.

+0

Когда я пытаюсь, я получаю объект AttributeError: 'Chart' не имеет атрибута 'yaxis''. Я отредактирую вопрос, чтобы показать, что я уже пробовал это! – Joy

+1

Тогда у вас есть довольно старая версия Bokeh. Именно поэтому всегда важно указать, какую версию программного обеспечения вы используете при обращении за помощью. Мое первое предложение - просто обновить до более новой версии. – bigreddot

+0

ОК, я нахожусь на последнем bokeh, который pip может установить, и все еще вижу проблему. Я отредактировал вопрос. – Joy