首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何选择(选择) venn图区域

我如何选择(选择) venn图区域
EN

Stack Overflow用户
提问于 2016-05-21 06:59:50
回答 1查看 545关注 0票数 0

通过单击python可以选择或选择Venn图区域吗?

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-25 14:53:49

Matplotlib支持一定程度的事件处理,并为绘图的组件(无论是Venn图还是任何其他类型的绘图)“选择”事件。

venn3函数返回的Venn关系图对象包含一个字段patches,其中列出构成关系图的所有PathPatch对象。您可以像其他Matplotlib修补程序对象一样使这些“可选”:

代码语言:javascript
复制
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 (如果您只需要这三个圆),而不是同时使用这三个圆。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37359916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档