我在这里使用HeatMap示例生成下面的图表 http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html#heatmap
现在想:
1)添加x& y轴标签
2)反转y轴的范围
3)将x轴放在顶部(而不是底部)
这些是否可以通过把手p到HeatMap?
如果没有,是否可以通过p?
返回数字句柄下面的代码片段:
from bokeh.charts import HeatMap, output_file, show
import pandas as pd
output_file('heatmap.html')
df = pd.DataFrame(
dict(apples=[4, 5, 8],
bananas=[1, 2, 4],
pears=[6, 5, 4]),
index=['2012', '2013', '2014'])
p = HeatMap(df, title='Fruits')
# 1) Want to label the axis
p.xlabel('This is a test label') # This does not appear
# 2) Want to reverse the Y axis: 2012:2014 to 2014:2012
p.y_range(start=2014, end=2012) # TypeError: 'FactorRange' object is not callable
# 3) Want to move the x axis (apples, bananas & pears) to the top, just under the title 'fruits'
# ?
show(p)
答案 0 :(得分:3)
据我所知,无法从像HeatMap这样的高级图表中访问图形属性。如果其他人想知道这个,而不是使用HeatMap,这就是我做的:
我必须创建一个ColumnDataSource,
定义色彩映射
创建一个数字:p = figure(...)
然后使用rect方法使用colormap中的相应颜色单独创建每个块
这种方法的一个例子是: http://bokeh.pydata.org/en/latest/docs/tutorials/solutions/gallery/unemployment.html
在那之后,我想做的三件事是可能的:
1)添加x& y轴标签
p.xaxis.axis_label = 'my X label'
p.yaxis.axis_label = 'my y label'
2)反转y轴的范围
if y_names is the list of y categories:
p = figure(...., y_range=list(reversed(y_names), ...)
3)将x轴放在顶部(而不是底部)
p = figure(..., x_axis_location="above", ...)
这不是很好,但它确实有效。