通过单击python可以选择或选择Venn图区域吗?
from matplotlib import pyplot as plt
import numpy as np
from matplotlib_venn import venn3, venn3_circles
plt.figure(figsize=(4,4))
v = venn3(subsets=(1, 2, 3, 4, 5, 6, 7), set_labels = ('A', 'B', 'C'))
c = venn3_circles(subsets=(1, 2, 3, 4, 5, 6, 7), linestyle='dashed')
plt.title("Sample Venn diagram")
plt.show()发布于 2016-05-25 14:53:49
Matplotlib支持一定程度的事件处理,并为绘图的组件(无论是Venn图还是任何其他类型的绘图)“选择”事件。
从venn3函数返回的Venn关系图对象包含一个字段patches,其中列出构成关系图的所有PathPatch对象。您可以像其他Matplotlib修补程序对象一样使这些“可选”:
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()venn3_circles函数返回一个由三个Circle补丁组成的列表,这些补丁是在“适当分段”的图表上绘制的。你可以让他们也可以选择,但你将需要处理“挑选冲突”以某种方式。因此,通常我建议您使用venn3 (如果您需要7个有色补丁)或venn3_circles (如果您只需要这三个圆),而不是同时使用这三个圆。
https://stackoverflow.com/questions/37359916
复制相似问题