首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matplotlib-Venn中的精确配色

Matplotlib-Venn中的精确配色
EN

Stack Overflow用户
提问于 2015-04-21 05:05:52
回答 1查看 6.1K关注 0票数 5

使用以下代码:

代码语言:javascript
复制
from matplotlib import pyplot as plt
from matplotlib_venn import venn2
from collections import OrderedDict

named_sets = {'x1': set(['foo','foo','bar',"pax"]), "x3" : set(['foo','qux','bar',"zoo"])}
od = OrderedDict(sorted(named_sets.iteritems()))

circlenm = ()
circlels = []
for k,v in od.iteritems():
    circlenm = circlenm + (k,)
    circlels.append(v)


c = venn2(subsets = circlels,set_labels = circlenm)
c.get_patch_by_id('10').set_color('red')
c.get_patch_by_id('01').set_color('blue')
c.get_patch_by_id('10').set_edgecolor('none')
c.get_patch_by_id('01').set_edgecolor('none')
c.get_patch_by_id('10').set_alpha(0.4)
c.get_patch_by_id('01').set_alpha(0.4)
plt.show()

我可以得到以下数字:

在这里,我想把“蓝色”和“红色”的圆圈混合起来。注意,混合的结果是brown

但是实际值应该是light洋红(下面的图是使用默认matplotlib_venn.venn3创建的):

我如何才能正确地做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-21 06:50:46

添加这3行以设置交集的颜色和显示属性:

代码语言:javascript
复制
c.get_patch_by_id('11').set_color('magenta')
c.get_patch_by_id('11').set_edgecolor('none')
c.get_patch_by_id('11').set_alpha(0.4)

如果您想要一个确切的颜色,那么您可以这样设置:

代码语言:javascript
复制
c.get_patch_by_id('11').set_color('#e098e1')

修补程序id是一个位掩码,显示该区域在内部的哪个圆圈。

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

https://stackoverflow.com/questions/29763360

复制
相关文章

相似问题

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