web-dev-qa-db-ja.com

`figure()`関数の外部からpython `bokeh`プロット図のタイトルを設定します

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')の外からプロットのタイトルを設定する方法を知っている人はいますか

7
krishnab

編集: 既知のバグ のため、この回答の解決策はボケサーバーでは機能しないことに注意してください。 以下のこの回答 は機能し、より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に設定して次のグラフを出力します。

example output

7
Haleemur Ali

新しいTitleオブジェクトを作成せずにタイトルを変更するには、フィギュアのtitle.text属性を設定します。

from bokeh.plotting import figure
p = figure()
p.title.text = 'New title'
17
Wesley Hill