特定のテキストと特定のフォントサイズ(「これはとても楽しい」の写真に示されているように、フォントサイズは「20px」で小さな文字を使用して、MyTextラベルを図の右下部分に貼り付けたいと思います。I二分法によって良い位置を見つけました)。xに渡す必要のある関数の位置は何ですか?これは、len(MyText)、text_font_size、および図の幅によって異なります...
from bokeh.models import ColumnDataSource, Label, LabelSet, Range1d
from bokeh.plotting import figure, output_file, show
width,height=400,300
p = figure(plot_width=width, plot_height=height)
MyText='this is super fun'
my_font_size = "20px"
labels = Label(x=width/2+25, y=0,x_units='screen', y_units='screen', text=MyText,text_font_size=my_font_size)
p.add_layout(labels)
show(p)
実際、これを行うための100%堅牢な方法はないと思います。
あなたは、設定することができますtext_align
に"right"
いることができます:
p = figure(plot_width=width, plot_height=height)
labels = Label(x=width-50, y=0,
x_units="screen", y_units='screen', text_align="right",
text=MyText,text_font_size=my_font_size)
上記の-50は、「プロット領域」の右側(つまりツールバーがある場所)のスペースの幅を(大まかに)考慮していることに注意してください。ただし、左側にy軸を追加する場合は、それも考慮する必要があります。ズームを許可すると、左側のスペースが拡大または縮小して、軸のラベルを大きくしたり小さくしたりできるようになります。つまり、できません。前もって単一の定数でそのスペースを確実に説明します。min_border
値を大きく設定することで、ズーム/パンの範囲の問題を軽減できる可能性があります。
また、上記は、プロットサイジングモードが「応答性」ではないことを前提としています。プロット自体のサイズを変更できる場合、画面単位の定数値は機能しません。
x範囲の開始/終了を修正できる(または「追加の」範囲を追加できる)場合は、「データ」単位を使用して範囲の終了値に右揃えできます。ただし、ズームまたはパンを許可すると、ラベルはそのデータ位置に固定されたまま移動します。
主な問題は、「inner_width」がブラウザでのみ計算されることです。ブラウザの外部に存在しないため、Pythonコードでは使用できません。本当に必要なのは、パン、ズーム、サイズ変更に関係なく、必要なものを更新するシンボリックコンセプトとして「inner_width」を指定するための特別な規則または構成です。この機能を提案するには、GitHubの問題を作成することをお勧めします。
それまでの間、どのソリューションでも、「px」の固定フォントサイズで試行錯誤し、可能であればパン/ズームを制限するのが理想的だと思います。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加