2016-07-29 9 views
0

バウンド、私は次のコードのみ設定するプロットのy範囲の上限は、しかし、下界も不可解0に設定されている期待:ボケ範囲の設定のみ1

import bokeh.plotting as bkp 
import numpy as np 

bkp.output_file("/tmp/test_plot.html") 
fig = bkp.figure(y_range=[None, 100]) # plot y range: 0-100 
# fig = bkp.figure() # plot y range: 50-100 
fig.line(np.linspace(0, 1, 200), np.random.random(200)*50+50) # number range: 50-100 
bkp.save(fig) 

これはなぜ起こるのでしょうか?レンジ範囲を1つだけ設定する最も簡単な方法は何ですか?

+0

「Range1d(start = None、end = 100)」と同じ問題 – user2561747

答えて

1

あなたは「ダム」(にわたる非自動)Range1dとオートレンジデフォルトDataRange1dを交換しています。範囲全体を置換せずに、プロットが作成するデフォルト範囲のendの値を設定します。または、新しいDataRange1dと交換してください。

+0

ありがとう! 'import bokeh.models as bkm'と' fig = bkp.figure(y_range = bkm.DataRange1d(end = 100)) 'はこのトリックを行いました。 – user2561747

+0

'p.x_range.end = 100'も動作するはずです – bigreddot

0

Range1d(start=None, end=100)(お客様のコメントにも記載されています)は、最初のビューの定義に過ぎません。 Rangeが開始点と終了点の両方を持たないことは意味がありません。したがって、start=Noneと指定すると、デフォルト値の0が使用されます。これは、あなた上限100の境界と何の下を与えないだろう

Range1D(start=value1, end=value2, bounds=(None, 100))

:私はあなたがやろうとしているものだと思い

はこのようなものです。

さらに詳しい仕様と例については、docsを参照してください。

編集:大丈夫です、私は最初にあなたの境界を設定しようとしていたようにあなたの質問を準備します。代わりにDataRange1Dクラスを使用する必要があります。 startを上書きしないことを確認した場合は、デフォルトで「auto」に設定されます。 言い換えれば、これはあなたが欲しいものを行う必要があります。

DataRange1D(end=100)

+0

混乱して申し訳ありません。ドキュメントを見ると、ユーザーがどのくらいズームアウトすることができるかはバウンドコントロールのようです。私は最初のビューの片側だけを設定することに興味があります - 'plt.ylim(max = 100)'に似ています。 – user2561747

関連する問題