2016-01-21 74 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