Я ищу библиотеку JavaScript, которая может создавать диаграммы Венна .
Требования
Способность к
Бонус
Способность к
A = {1;5;10}
и B = {5;20}
, диаграмма будет включать числа из A в первый «круг» (то же самое касается B), а также отображать A ∩ B = {5}
в области пересечения)Пример
A ∩ B
в красный цвет(Изображение взято отсюда , общественное достояние)
Гитхаб: https://github.com/benfred/venn.js
Он использует D3.js в качестве базовой графической библиотеки.
// Code taken from the GitHub repository, the license specified there applies.
// define sets and set set intersections
var sets = [{label: "A", size: 10}, {label: "B", size: 10}],
overlaps = [{sets: [0,1], size: 2}];
// get positions for each set
sets = venn.venn(sets, overlaps);
// draw the diagram in the 'simple_example' div
venn.drawD3Diagram(d3.select(".simple_example"), sets, 300, 300);
Я не пробовал выбирать пользовательские цвета, но вполне вероятно, что это возможно.
Вы также можете произвольно стилизовать области пересечения: http://benfred.github.io/venn.js/examples/intersection_tooltip.html
См. первый пример.
Не возможно, насколько я знаю. (Должен признать, что я не полностью прочитал документацию и код.)
В некоторых случаях круги не могут быть расположены правильно. В некоторых случаях эти проблемы может решить переход на алгоритм многомерного масштабирования: http://benfred.github.io/venn.js/examples/mds.html .
Однако я также сталкивался с другими крайними случаями, когда сбой макета связан с пропорциональным масштабированием кругов. Возможно, вы захотите прочитать статьи в блоге автора о проблемах, с которыми вы сталкиваетесь при рисовании диаграмм Венна:
Venn.js требует, чтобы вы сами создавали перекрытия и наборы. Если кого-то интересует возможность ввода {1;2;3} ∩ {2;3}
, я написал для этого небольшую библиотеку. Возможно, когда-нибудь в будущем я выложу код на GitHub.
Github: https://github.com/lafarer/d3-venn
Демо: http://bl.ocks.org/lafarer/0f7677bdfa6c3ab7f6c3
Вы можете указать наборы и регионы (пересечения), цветовую схему; он поддерживает события мыши и выделение. Работает до 7 сетов.
Отказ от ответственности: я являюсь автором этого плагина d3
Мохаммад Реза Резвани