一連の散布図を描くために mpld3 を使用しています。
PointLabelTooltip を正常に使用しました。しかし、LinkedBrush 機能を使用して、同じ特性を持つポイントを強調表示したいと考えています。
たとえば、20 の細菌の 70 の遺伝子のシーケンス深度の散布図を作成しました。ドットにカーソルを合わせると、それが参照している遺伝子がわかります。しかし、他のバクテリアの同じ遺伝子を表す点も強調したいと思います.
#Make an array of 20 bacteria each with 70 genes
a = np.random.randint(500, size=(20, 70))
bacteria = ["b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "b10", "b11", "b12", "b13", "b14", "b15", "b16", "b17", "b18", "b19", "b20"]
genes = ["g1", "g2", "g3", "g4", "g5", "g6", "g7", "g8", "g9", "g10", "g11", "g12", "g13", "g14", "g15", "g16", "g17", "g18", "g19", "g20", "g21", "g22", "g23", "g24", "g25", "g26", "g27", "g28", "g29", "g30", "g31", "g32", "g33", "g34", "g35", "g36", "g37", "g38", "g39", "g40", "g41", "g42", "g43", "g44", "g45", "g46", "g47", "g48", "g49", "g50", "g51", "g52", "g53", "g54", "g55", "g56", "g57", "g58", "g59", "g60", "g61", "g62", "g63", "g64", "g65", "g66", "g67", "g68", "g69", "g70"]
fig, ax = plt.subplots(1, a.shape[0], sharey="row", figsize=(10, 3.5))
labels = []
for i in range(a.shape[0]):
xlist = np.random.normal(1, 0.1, len(a[i,:]))
points = ax[i].scatter(xlist, a[i,:])
ax[i].set_ylim(0,500)
ax[i].xaxis.set_major_locator(pylab.NullLocator())
ax[i].set_xlabel(bacteria[i])
labels.append(genes[i])
tooltip = plugins.PointLabelTooltip(points, labels=labels)
plugins.connect(fig, tooltip)
mpld3.display()
さまざまなバクテリアの同じ遺伝子のドットを強調表示するように、linkedBrush プラグインを変更したいと思います。
plugins.connect(fig, plugins.LinkedBrush(points))
ソース コード ( https://mpld3.github.io/_modules/mpld3/plugins.html ) を確認しましたが、LinkedBrush モジュールに変更するのに十分な情報が含まれていないようです。
これをどのように実装するかについての提案は大歓迎です。
ありがとう