我可以访问较低级别的散景'绘图'从更高层次的界面'图表'宾语?

时间:2015-07-24 21:10:39

标签: python charts bokeh

我在这里使用HeatMap示例生成下面的图表 http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html#heatmap

enter image description here

现在想:

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)

1 个答案:

答案 0 :(得分:3)

据我所知,无法从像HeatMap这样的高级图表中访问图形属性。如果其他人想知道这个,而不是使用HeatMap,这就是我做的:

  1. 我必须创建一个ColumnDataSource,

  2. 定义色彩映射

  3. 创建一个数字:p = figure(...)

  4. 然后使用rect方法使用colormap中的相应颜色单独创建每个块

  5. 这种方法的一个例子是: 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", ...)
    

    这不是很好,但它确实有效。