如何更改 bokeh.charts 轴标签大小?
How to alter bokeh.charts axis label size?
我使用的是 Bokeh 0.11.1,pip install --upgrade bokeh
报告说我使用的是最新版本。
如果使用 bokeh.plotting,我可以确定如何更改散景 x 轴文本大小参数,但不能在散景图表中更改。下面的代码,如果在 Jupyter notebook 中 运行,将显示非常紧凑的 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'
.
有一个完整的用户指南部分专门用于 styling visual properties, including how to style 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。
我使用的是 Bokeh 0.11.1,pip install --upgrade bokeh
报告说我使用的是最新版本。
如果使用 bokeh.plotting,我可以确定如何更改散景 x 轴文本大小参数,但不能在散景图表中更改。下面的代码,如果在 Jupyter notebook 中 运行,将显示非常紧凑的 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'
.
有一个完整的用户指南部分专门用于 styling visual properties, including how to style 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。