【问题标题】:adding a labeled point to a Venn diagram in matplotlib-venn在 matplotlib-venn 中向维恩图添加标记点
【发布时间】:2014-06-17 01:16:13
【问题描述】:

说,我正在使用 python 和 matplotlib-venn 包来创建一些维恩图。但是,我想在其中一个圆圈内包含一个标记点​​。这样我就可以证明点x 是集合A 的一个元素。有没有办法简单地在 matplotlib-venn 的图表中添加一个点?

编辑:我添加了一张小图片来演示。

最小的工作示例:

这段代码只会创建维恩图,但没有重点

from matplotlib import pyplot as plt
import numpy as np
from matplotlib_venn import venn2
plt.figure(figsize=(4,4))
v = venn2(subsets = (3, 2, 1))
plt.show()

【问题讨论】:

  • 你有MCVE可以分享吗?
  • 按要求添加了 MCVE。
  • 抱歉。我现在明白你的意思了。是的,我可以做到。
  • 是的,我明白了,但是如果您可以提供代码来仅创建维恩图(没有重点),那么这意味着希望帮助您的人不必自己创建维恩图.他们可以使用您现有的代码,只需添加代码即可添加点。
  • 好的,一切就绪。谢谢@Ffisegydd

标签: python matplotlib scipy venn-diagram matplotlib-venn


【解决方案1】:

维恩图以 x,y = 0,0 为中心。只需将您的点绘制在所需的 x,y 上即可。

from matplotlib import pyplot as plt
from matplotlib_venn import venn2
plt.figure(figsize=(4,4))
v = venn2(subsets = (3, 2, 1))

plt.axhline(0, linestyle='--')
plt.axvline(0, linestyle='--')

plt.plot(-0.5,0.2,'bo')
plt.text(-0.6,0.2, 'A')

plt.show()

【讨论】:

  • 优秀。非常感谢。
  • 有没有办法自动执行此操作——无需指定每个点?我想在图表中放置多达 50 个元素。
  • @zadrozny 将两者放在一个循环中,例如[plt.plot((x,y),'bo') for (x,y) in list_of_coords],标签也一样?
猜你喜欢
  • 1970-01-01
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 2014-03-10
相关资源
最近更新 更多