我使用的是Bokeh 0.11.1,pip install --upgrade bokeh
报告我使用的是最新版本。
如果使用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'
。
答案 0 :(得分: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)
这是结果,带有微小的y轴标签:
如果由于某种原因无法更新到版本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。