環境
- Python 3.12.1
- bokeh 3.4.0
やりたいこと
bokehのcircle()
関数を使って散布図を作成したいです。
bokeh 3.3.4で以下のコードを実行すると、期待通りの散布図が出力されました。
sample.py
from bokeh.io import output_file, save
from bokeh.plotting import figure, ColumnDataSource
fig = figure(width=400, height=400)
data = {"a": [1, 2, 3], "b": [3, 1, 2]}
source = ColumnDataSource(data)
fig.circle(
source=source,
x="a",
y="b",
)
output_file("output.html")
save(fig)
しかし、bokeh 3.4.0で実行すると、グラフに円形は表示されませんでした。
解決策
原因は分かりません。~githubのissueを調査していませんが、たぶんバグだと思います。~
issueで報告しました。
この記事を書いた日は2024/03/18で、bokeh 3.4.0のリリース日は2024/03/15です。そのうち、修正版がリリースされるかもしれません。
bokeh 3.4.0でも散布図を出力したいので、どうすれば散布図を出力できるか調べました。
以下に解決策を記載します。
circle()
関数ではなくscatter()
関数を使う。
fig.scatter(
source=source,
x="a",
y="b",
marker="circle"
)
circle()
関数のsize
引数を指定する
fig.circle(
source=source,
x="a",
y="b",
size=8
)
ただし、circle()
関数のsize
引数はbokeh 3.4.0から非推奨です。
$ python sample.py
BokehDeprecationWarning: 'circle() method with size value' was deprecated in Bokeh 3.4.0 and will be removed, use 'scatter(size=...) instead' instead.
circle()
関数のradius
引数を指定する
fig.circle(
source=source,
x="a",
y="b",
radius=0.1
)