在高级图表上设置x轴和y轴范围?

时间:2016-02-20 16:49:10

标签: python graph charts bokeh jupyter-notebook

下面的图表以及Bokeh文档中作为示例提供的许多高级图表都存在一个问题:它在x轴和x轴上的图的任一侧创建了一个不必要且视觉上迷失方向的空间。 y轴。例如,请参阅this example

如果图表的角落精确地切入轴的边缘(因此我区域的左下角位于图表的左下角,而我的区域的右下角位于图表的右下角)。为此,我希望我需要更改绘图的x_rangey_range以匹配我的数据范围。

对于低级plotting.figure个对象,我只需设置y_rangex_range,但这些属性似乎不适用于高级bokeh.charts个对象。 / p>

高级别图表的相关属性是什么?如何设置它们?

这是一个情节的MWE,这个问题证明了我的意思:

defaults.width = 800
defaults.height = 400

output_notebook(hide_banner=True)

data = dict(
     python=[2, 3, 7, 5, 26, 221, 44, 233, 254, 265, 266, 267, 120, 111],
     pypy=[12, 33, 47, 15, 126, 121, 144, 233, 254, 225, 226, 267, 110, 130],
     jython=[22, 43, 10, 25, 26, 101, 114, 203, 194, 215, 201, 227, 139, 160],
)

# data = execs_dat

area = Area(data,
            title="Cumulative executive experience at the Wikimedia Foundation",
            stack=True,
            xlabel='',
            ylabel=''
           )

show(area)

这是一个视觉效果:

enter image description here

1 个答案:

答案 0 :(得分:3)

编辑:好的,我第一次弄错了。既然您已添加了图像,我了解您想要的是将范围限制为x / y值的严格最小值/最大值。在这种情况下,您可以简单地显式设置x_range / y_range。例如:

area.y_range = Range1d(0, 270)

如果您还希望从轴边界获得更多空间,那么您可以在此处参考我的旧答案:

  

我不完全确定我理解你的问题,因为你问过   关于轴和提及范围...如果你的问题得到了解决   可以将您的标签设置为'' (正如你所做的那样)并设置min_border_bottom或   min_border_left减少相关空间,因为Chart继承   来自Plot。所以,在你的情况下:

area.min_border_bottom = area.min_border_left = 0
     

尽管如此,目前的讨论是将ChartFigure对齐   所以它也可以共享[至少部分] API。

     

如果这不是您的问题而且您认为Chart无效   因为我应该建议要么将讨论转移到   mailing listopen an issue on github wh

它可以更好地解决。