0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

bokeh 3.4.0で`circle()`関数をsizeやradius引数を指定せずに実行すると、円形が描画されない

Last updated at Posted at 2024-03-18

環境

  • 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)

image.png

しかし、bokeh 3.4.0で実行すると、グラフに円形は表示されませんでした。

image.png

解決策

原因は分かりません。~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"
)

image.png

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.

image.png

circle()関数のradius引数を指定する

fig.circle(
    source=source,
    x="a",
    y="b",
    radius=0.1
)

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?