2016-05-21 21 views

答えて

0

matplotlibのは、支持some degree of event handlingならびにプロットの構成要素のための「選択」イベントを行い(これはベン図やプロットの任意の他のタイプであるかどうか)。

venn3関数から返されたVennダイアグラムオブジェクトには、図を構成するPathPatchオブジェクトをすべて列挙するフィールドpatchesが含まれています。 venn3_circles機能は、「適切にセグメント化」ダイアグラム時に描かれている3つのCircleパッチのリストを返します

from matplotlib import pyplot as plt 
import numpy as np 
from matplotlib_venn import venn3 

# Create the diagram 
plt.figure(figsize=(4,4)) 
v = venn3(subsets=(1, 2, 3, 4, 5, 6, 7), set_labels = ('A', 'B', 'C')) 
plt.title("Sample Venn diagram") 

# Make all patches of the diagram pickable 
for p in v.patches: 
    if p is not None: p.set_picker(True) 

# This is the event handler 
def on_pick(event): 
    p = event.artist 
    ec = p.get_edgecolor() 
    p.set_edgecolor('black' if ec[-1] == 0.0 else 'none') 
    plt.gcf().canvas.draw() # Redraw plot 

# Connect event handler 
plt.gcf().canvas.mpl_connect('pick_event', on_pick) 

# Show the plot 
plt.show() 

:あなたは、これらの他のmatplotlibのパッチオブジェクトとして「pickable」を作ることができます。あなたもそれらを選ぶことができるかもしれませんが、それから何らかの形で「争いを選ぶ」ことに対処する必要があります。したがって、一般的には、venn3(7色のパッチが必要な場合)またはvenn3_circles(3つの円だけが必要な場合)のいずれかを使用することをお勧めします。

関連する問題