5

ここでmatplotlibの回答に従って、ポイントをクリックしてそのポイントのメタデータに基づいて新しいプロットを作成できるように、グラフをクリック可能にする方法を見つけました。

クリック可能なプロットをPanelダッシュ​​ボードに配置するときが来ました。明らかな動きは、その図を に追加することpanel.Rowです。これにより図が表示されますが、対話性が得られません。

import matplotlib.pyplot as plt
import panel as pn

class custom_objects_to_plot:
    def __init__(self, x, y, name):
        self.x = x
        self.y = y
        self.name = name

a = custom_objects_to_plot(10, 20, "a")
b = custom_objects_to_plot(30, 5, "b")
c = custom_objects_to_plot(40, 30, "c")
d = custom_objects_to_plot(120, 10, "d")

def on_pick(event):
    my_fig, my_ax = plt.subplots() # New plot with unique name
    my_ax.scatter([1, 2, 3, 4], [5, 6, 7, 8]) # Make the scatterplot
    my_fig.show() # Show the plot

fig, ax = plt.subplots()
for obj in [a, b, c, d]:
    artist = ax.plot(obj.x, obj.y, 'ro', picker=5)[0]
    artist.obj = obj

fig.canvas.callbacks.connect('pick_event', on_pick)

my_row = pn.Row()
my_row.append(fig)
my_row.show()

コマンドラインから実行したときのようにインタラクティブな(クリック可能な)プロットを表示するにはどうすればよいですか?

4

1 に答える 1