Pythonでbokeh
プロットパッケージを使用しているときに、非常に単純な問題に遭遇しました。
通常のフィギュアコンストラクターの外からボケフィギュアのタイトルを設定したかったのですが、奇妙なエラーが発生します。
これがコードです。
_from bokeh.plotting import figure
p = figure()
p.title = 'new title'
_
しかし、このコードを試してみると、次のエラーメッセージが表示されます。
_ValueError: expected an instance of type Title, got new plot of type str
_
したがって、フィギュアに渡すためにTitle
オブジェクトまたは何かを作成する必要があるようです。ただし、ボケ味では ドキュメント タイトルの設定方法については言及されていません。タイトルのフォントや色の変更方法などについてのみ記載されています。
通常のfigure(title='new title')
の外からプロットのタイトルを設定する方法を知っている人はいますか
編集: 既知のバグ のため、この回答の解決策はボケサーバーでは機能しないことに注意してください。 以下のこの回答 は機能し、よりPythonicです。
Title
のインスタンスをp.title
に割り当てる必要があります。関数type
を使用してpythonで物事の種類を調査できるので、これらの種類のものを理解するのはかなり簡単です。
> type(p.title)
bokeh.models.annotations.Title
これがjupyterノートブックの完全な例です:
from bokeh.models.annotations import Title
from bokeh.plotting import figure, show
import numpy as np
from bokeh.io import output_notebook
output_notebook()
x = np.arange(0, 2*np.pi, np.pi/100)
y = np.sin(x)
p = figure()
p.circle(x, y)
t = Title()
t.text = 'new title'
p.title = t
show(p)
タイトルをnew title
に設定して次のグラフを出力します。
新しいTitle
オブジェクトを作成せずにタイトルを変更するには、フィギュアのtitle.text
属性を設定します。
from bokeh.plotting import figure
p = figure()
p.title.text = 'New title'