<p>我不久前写了一个javascript库,可以做到这一点:<a href="https://github.com/benfred/venn.js" rel="nofollow noreferrer">venn.js</a>。它在您给定的数据集上生成以下输出:</p>
<p><img src="https://i.imgur.com/H4YsTQU.png" alt="Output on your data"/></p>
<p>它是用javascript编写的,但是Kent Russell提供了一个<a href="https://github.com/timelyportfolio/d3vennR" rel="nofollow noreferrer">htmlwidgets interface to call it from R</a>。在</p>
<p>生成代码是:</p>
<pre><code>// define set sizes and their intersection sizes
var sets = [
{sets: ['Ath'], size: 901},
{sets: ['Fve'], size: 14764},
{sets: ['Mdm'], size: 19408},
{sets: ['Pcmm'], size: 17714},
{sets: ['Pper'], size: 16948},
{sets: ['Pmum'], size: 17572},
{sets: ['Ath', 'Fve'], size: 823},
{sets: ['Ath', 'Mdm'], size: 846},
// need to specfiy the rest of the sets don't overlap
{sets: ['Ath', 'Pcmm'], size: 0},
{sets: ['Ath', 'Pper'], size: 0},
{sets: ['Ath', 'Pmum'], size: 0},
{sets: ['Fve', 'Mdm'], size: 0},
{sets: ['Fve', 'Pcmm'], size: 0},
{sets: ['Fve', 'Pper'], size: 0},
{sets: ['Fve', 'Pmum'], size: 0},
{sets: ['Mdm', 'Pcmm'], size: 0},
{sets: ['Mdm', 'Pper'], size: 0},
{sets: ['Mdm', 'Pmum'], size: 0},
{sets: ['Pcmm', 'Pper'], size: 0},
{sets: ['Pcmm', 'Pmum'], size: 0},
{sets: ['Pper', 'Pmum'], size: 0},
];
// draw the chart in the venn div
var chart = venn.VennDiagram();
d3.select("#venn").datum(sets).call(chart);
</code></pre>