2016-10-27 292 views
0

我正在使用Bokeh 0.11.1,并且pip install --upgrade bokeh报告我正在使用最新版本。如何更改bokeh.charts轴标签尺寸?

如果使用了bokeh.plotting,我可以确定如何更改散景x轴文本大小参数,但不能用于散景图表。下面的代码,如果在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.chartsbokeh.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) 

这里是结果,与小y轴标签:

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:'图表'对象没有属性'yaxis''。我将编辑问题以表明我已经尝试过! – Joy

+1

然后你有一个相当旧版本的散景。这就是为什么在请求帮助时,说明您正在使用的软件的版本总是很重要。我的第一个建议只是更新到更新的版本。 – bigreddot

+0

好吧,我正在使用pip可以安装的最新散景,并且仍然可以看到问题。我编辑了这个问题。 – Joy