- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我画了一个三向维恩图。我有三个似乎无法解决的问题。
移动圆标签(即“Set1”、“Set2”、“Set3”)的代码是什么,因为现在离圆太远了。
使圆圈大小相等/更改圆圈大小的代码是什么?
围绕绘图移动圆圈的代码是什么?现在,set2 在 set3 内(但颜色不同),我希望图表看起来更像显示维恩图的“标准”方式(即 3 个独立的圆圈,中间有一些重叠)。
另一方面,我发现很难找到诸如“set_x”、“set_alpha”之类的命令应该是什么;如果有人知道可以回答上述问题的手册,我将不胜感激,我似乎找不到包含我需要的所有信息的地方。
import sys
import numpy
import scipy
from matplotlib_venn import venn3,venn3_circles
from matplotlib import pyplot as plt
#Build three lists to make 3 way venn diagram with
list_line = lambda x: set([line.strip() for line in open(sys.argv[x])])
set1,set2,set3 = list_line(1),list_line(2),list_line(3)
#Make venn diagram
vd = venn3([set1,set2,set3],set_labels=("Set1","Set2","Set3"))
#Colours: get the HTML codes from the net
vd.get_patch_by_id("100").set_color("#FF8000")
vd.get_patch_by_id("001").set_color("#5858FA")
vd.get_patch_by_id("011").set_color("#01DF3A")
#Move the numbers in the circles
vd.get_label_by_id("100").set_x(-0.55)
vd.get_label_by_id("011").set_x(0.1)
#Strength of color, 2.0 is very strong.
vd.get_patch_by_id("100").set_alpha(0.8)
vd.get_patch_by_id("001").set_alpha(0.6)
vd.get_patch_by_id("011").set_alpha(0.8)
plt.title("Venn Diagram",fontsize=14)
plt.savefig("output",format="pdf")
最佳答案
What is the code to move the circle labels (i.e."Set1","Set2","Set3") because right now one is too far away from the circle.
类似的东西:
lbl = vd.get_label_by_id("A")
x, y = lbl.get_position()
lbl.set_position((x+0.1, y-0.2)) # Or whatever
“A”
、“B”
、“C”
是预定义的标识符,分别表示三个集合。
What is the code to make the circles be three equal sizes/change the circle size?
如果您不希望圆/区域大小与您的数据相对应(不一定是个好主意),您可以使用函数 venn3_unweighted
获得未加权(“经典”)维恩图:
from matplotlib_venn import venn3_unweighted
venn3_unweighted(...same parameters you used in venn3...)
您可以通过向 venn3_unweighted
提供一个 subset_areas
参数来进一步欺骗和调整结果 - 这是一个指定每个区域所需相对大小的七元素向量。在这种情况下,图表将被绘制为好像区域区域是 subset_areas
,但数字将从实际的 subsets
中显示。尝试,例如:
venn3_unweighted(...., subset_areas=(10,1,1,1,1,1,1))
What is the code to move the circles around the plot.
“移动圆圈”的需要有些不寻常 - 通常您希望圆圈的位置使其交点大小与您的数据相对应,或者使用“默认”定位。 venn3
和 venn3_unweighted
函数满足了这两个要求。可以任意移动圆圈,但需要一些较低级别的编码,我建议不要这样做。
I found it difficult to find what the commands such as "set_x", "set_alpha" should be
调用 v.get_label_by_id
时得到的对象是一个 Matplotlib Text
对象。您可以阅读它的方法和属性 here . v.get_patch_by_id
返回的对象是一个PathPatch
,看here和 here供引用。
关于python - 维恩3 : How to reposition circles and labels?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36472578/
我是 iPhone 开发新手,目前正在开发一个简单的 RSS 阅读器应用程序。我遇到的问题是我需要重新定位 UITableViewCells 内的 textLabel 。我尝试过 setFrame 或
我有代码可以让我在 UIImageView 上绘图 - 但我希望能够限制绘图区域。 我已经能够限制大小,但现在我无法定位它:如果我将 (0, 0) 更改为任何其他值,我的图像将完全消失并且绘图功能将停
我正在尝试建立一个网站。但出于某种原因,我无法重新定位我的下拉列表 (CSS)。需要一些帮助。我需要将该下拉列表移至中心。 HTML代码: MY CYCLE
我画了一个三向维恩图。我有三个似乎无法解决的问题。 移动圆标签(即“Set1”、“Set2”、“Set3”)的代码是什么,因为现在离圆太远了。 使圆圈大小相等/更改圆圈大小的代码是什么? 围绕绘图移动
我正在通过更改 OpenCart 2.0.2.0 的默认模板代码来设计自己的模板。重新定位“搜索”字段后,它不再起作用:按 Enter 键时不会提交,并且单击表单中的搜索按钮时不会在 URL 中提交搜
在此页面上 - http://binkley2.nowmgbeta.com/services - 我正在使用 id 标签,这样我就可以使用我的下拉菜单链接到那些部分。不过,我的 Sticky head
fiddle :https://jsfiddle.net/vpkarep8/ 我有三个饼图,在使用新数据更新时会显示动画,但我似乎无法正确更新标签。上面附有一把 fiddle 。 为了更改文本,我必须
我继承了一个显示时间轴事件的 D3 图表,事件显示为圆圈。要建立 x 轴,页面使用以下内容,其中 show_date 是 csv 文件中的一列。 x.domain(d3.extent(data, fu
我目前有一个 div,其中有许多大小相等的内联 block 对象。目前每行有四个。我想确保如果父 div 的对象太多,滚动条就会出现。为此,我使用了 overflow-y: auto。这工作正常。 问
编写一个 C 程序,打开一个名为 phoneList.txt 的文本文件并搜索联系人(名字、姓氏、电话号码),并更新现有联系人的电话号码。我的问题出在更新电话号码程序中。当我使用 fgets 查找匹配
在使用 ggplot 时,我在格式化的两个方面遇到了一些困难。 首先,我希望能够为每个条形添加水平线,以便条形看起来像这样: (来源:eurosurveillance.org) 第二,我想更改刻度标签
有没有办法将 chrome 扩展程序的 browser_action 的 popup.html 页面重新定位到 chrome 扩展程序图标区域(右上角)以外的某个地方?我希望能够在任何选项卡中使用我的
我有几个弹出窗口按钮,单击这些按钮即可动态获取弹出窗口信息。我能够获得其各自按钮的正确信息,但很难重新定位或调整弹出窗口的大小。 [这是链接] http://bootply.com/87953哪里可以
我想创建一个无限网格平面,并希望重新使用现有网格而不是创建一个非常大的网格。 我尝试过使用 camera.position.z 和 grid.position.z,但是当我四处移动相机时 grid.p
http://jsfiddle.net/cD4Gr/4/ 乐代码: $j(document).bind('click', function() { $j("#test").css({ bott
我想根据按钮的可见性属性重绘组合中的按钮。我根据其中的按钮进行合成以调整大小,并且我正在使用以下代码来刷新合成。问题:下面的代码工作正常,但按钮从未在复合中重新定位请帮忙。代码中是否缺少要重新定位的内
我是一名优秀的程序员,十分优秀!