2016-01-21 76 views
2

如何在数字和图表上修改y-axis比例尺?我想要这样的:my_figure.y_range.end = my_figure.y_range.end * 1.3Python散景修改轴比例尺

所以我想要更高一点y-axis。谢谢!

回答

7

Figure默认使用DataRange1d对象,这会导致范围自动计算。但是,这发生在浏览器上,因为它考虑了像渲染时可用的字形范围只有的信息。 my_figure.y_range.end * 1.3不起作用的原因是因为“自动”的值end尚未知。它只在浏览器中自动设置。您可以通过提供startend覆盖的DataRange“自动”的行为,但你得给它,你需要一个明确的,数值,即:

my_figure.y_range.end = 10 

另外,DataRange1d车型有range_padding属性,您可以设置,它控制添加到自动计算边界的“额外填充”的数量。在此描述:

http://bokeh.pydata.org/en/latest/docs/reference/models/ranges.html#bokeh.models.ranges.DataRange1d.range_padding

这可能完成你以不同的方式想要的东西,但要注意,它影响开始和结束。

p = figure(..., x_range=(10, 20)) 

这将创建一个固定Range1d

最后,如果你只是想完全控制的范围内,无需自动量程的一切,你可以在创建人物做到这一点x轴与start=10end=20

+0

非常感谢!明确的方法是我的“朋友”:'my_figure.y_range.start = -1 - (df ['my_attr'] .max() - df ['my_attr'] .min())/ 20'和'my_figure.y_range .end = df ['my_attr'] .max()* 1.3 + 1'。需要'+/- 1',因为我不知道'my_attr'是否全为零。 – ragesz

+0

很好的答案 - 谢谢。它终于向我解释了范围在散景中行为的神话。 – pansen