Диаграмма венна что это

Диаграмма Венна

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Диаграмма Венна — схематичное изображение всех возможных пересечений нескольких (часто — трёх) множеств. Если пересечения позволяется указывать не все, получается более общий случай — круги Эйлера.

Диаграммы Эйлера — Венна (как их ещё называют) изображают все Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этокомбинаций Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этосвойств, то есть конечную булеву алгебру. При Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этодиаграмма Эйлера — Венна обычно изображается в виде трёх кругов с центрами в вершинах равностороннего треугольника и одинаковым радиусом, приблизительно равным длине стороны треугольника.

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Они появились в сочинениях английского логика Джона Венна (1834—1923), подробно изложившего их в книге «Символическая логика», изданной в Лондоне в 1881 году.

Ссылки

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Логические операции с понятиями

2 константы: импликация (Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это) • Круги Эйлера/ Диаграмма Венна • Теория множеств

Полезное

Смотреть что такое «Диаграмма Венна» в других словарях:

ДИАГРАММА ВЕННА — ДИАГРАММА ВЕННА, схематическое представление отношений между математическими МНОЖЕСТВАМИ или логическими утверждениями, названное по имени английского логика Джона Венна (1834 1923). Множества изображаются в виде геометрических фигур, обычно… … Научно-технический энциклопедический словарь

диаграмма Венна — Иллюстрирующая логические операции и операции булевой алгебры Boolean algebra [http://slovarionline.ru/anglo russkiy slovar neftegazovoy promyishlennosti/] Тематики нефтегазовая промышленность EN Venn diagram … Справочник технического переводчика

диаграмма Венна — Venn o diagrama statusas T sritis automatika atitikmenys: angl. Venn diagram vok. Venn Diagramm, n rus. диаграмма Венна, f pranc. diagramme de Venn, m ryšiai: sinonimas – Veno diagrama … Automatikos terminų žodynas

ДИАГРАММА ЭЙЛЕРА — ДИАГРАММА ЭЙЛЕРА, простая диаграмма, используемая в логике для демонстрации силлогизмов. Классы предметов изображаются в виде кругов, и утверждения типа «Некоторое а находится в b» представляется двумя пересекающимися кругами, представляющими а и … Научно-технический энциклопедический словарь

Диаграмма Эйлера — Пример диаграммы Эйлера. B живое существо, A человек, C неживая вещь. Круги Эйлера[1] геометрическая схема, с помощью которой можно изобразить отношения между подмножествами, для наглядного представления. Изобретены Эйлером. Используется в… … Википедия

ВЕННА ДИАГРАММА — графический способ изображения формул математич. логики, прежде всего формул исчисления высказываний. В. д. ппеременных классич. логики высказываний представляет собой такой набор замкнутых контуров (го меоморфных окружностям), к рый разбивает… … Математическая энциклопедия

Диаграммы Венна — Пример диаграммы Эйлера. B живое существо, A человек, C неживая вещь. Круги Эйлера[1] геометрическая схема, с помощью которой можно изобразить отношения между подмножествами, для наглядного представления. Изобретены Эйлером. Используется в… … Википедия

Диаграммы Эйлера—Венна — Пример диаграммы Эйлера. B живое существо, A человек, C неживая вещь. Круги Эйлера[1] геометрическая схема, с помощью которой можно изобразить отношения между подмножествами, для наглядного представления. Изобретены Эйлером. Используется в… … Википедия

ДИАГРАММЫ ВЕННА — ДИАГРАММЫ ВEHHА графический способ задания и анализа логико математических теорий и их формул. Строятся путем разбиения части плоскости на ячейки (подмножества) замкнутыми контурами (кривьми Жордана). В ячейках представляется информация,… … Философская энциклопедия

Круги Эйлера — Пример кругов Эйлера. Буквами обозначены, например, свойства: живое существо, человек, неживая вещь Круги Эйлера[1] геометрическая схема, с помощью которой можно изобразить отношения … Википедия

Источник

Диаграммы Эйлера-Венна

Что такое диаграммы Эйлера-Венна

Диаграмма Эйлера-Венна — геометрическая схема, которая используется для моделирования множеств и для схематичного изображения и отношений между ними.Диаграмма позволяет наглядно отразить различные утверждения о множествах. При использовании этого метода универсальное множество изображается в виде прямоугольника, подмножества изображают кругами. Диаграммы нашли свое применение в математике, логике, менеджменте и других прикладных направлениях.

Для отражения отношений между множествами математики Джон Венн и Леонард Эйлер использовали для способа. Если Венн использовал для обозначения множеств замкнутые фигуры, то Эйлер использовал круги.

Диаграммы Эйлера-Венна являются важным частным случаем кругов Эйлера. Диаграммы изображают все 2^n комбинаций n свойств, что является конечной булевой алгеброй. В случае n = 3 диаграмма Эйлера-Венна обычно состоит из трёх кругов с центрами в вершинах равностороннего треугольника и одинаковым радиусом, приближенно равным длине стороны треугольника.

Осторожно! Если преподаватель обнаружит плагиат в работе, не избежать крупных проблем (вплоть до отчисления). Если нет возможности написать самому, закажите тут.

Принцип построения

Построение диаграммы Эйлера-Венна — это изображение большого прямоугольника, который представляет универсальное множество U. Внутри прямоугольника изображаются замкнутые фигуры, обозначающие множества. Если множеств не более 3, то изображаются круги, и эллипсы, если множеств 4. Фигуры пересекаются в наиболее общем случае, требуемом задачей, что обозначается соответствующим образом.

Предположим, что на диаграмме изображен круг, представляющий множество А. Область в середине круга множества А отражает истинность выражения А, в то время как область вне круга обозначает ложь. Логическая операция будет отображаться на диаграмме при помощи штриховки тех областей, в которых ее значения истинны. В соответствии с алгеброй логики, конъюнкция множеств А и B будет истинна только тогда, когда истинны оба множества. Тогда на диаграмме будет отмечена область пересечения множеств.

С помощью диаграмм Эйлера-Венна можно доказать все законы алгебры, представляя их графически. Это возможно через выполнение следующего алгоритма:

Дополнение множества

При этом не все элементы, не являющиеся элементами А, могут быть включены в \(\overline A.\) Принято считать, что все множества, которые участвуют в решении задачи, являются подмножествами некоторого общего универсального множества U. Учитывая это, дополнение \overline A определяется следующим образом:

Таким образом выглядит дополнение \(\overline A\) графически:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Объединение множеств

Объединение записывается следующим образом:

Таким образом объединение множеств выглядит графически:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Пересечение множеств

Пересечение множеств записывается следующим образом:

Таким образом пересечение множеств выглядит графически:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Симметричная разность множеств

Симметричная разность A \ B — это такое множество, куда входят все те элементы первого множества, которые не входят во второе множество, а, также те элементы второго множества, которые не входят в первое множество

Разность множеств записывается следующим образом:

\(A\bigtriangleup B=(A\backslash B)\cup(B\backslash A)\)

Таким образом разность выглядит графически:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Разность множеств

Разностью A \ B является множество элементов A, не входящих в B.

Разность множеств записывается следующим образом:

Таким образом разность выглядит графически:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Использование диаграмм Эйлера-Венна для доказательства логических равенств

Рассмотрим, как диаграммы Эйлера-Венна применяются для доказательства логических равенств.

Предположим, что перед нами конъюнкция множеств \(A\;\wedge\;B\)

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

В первую очередь обратим внимание на левую часть равенства. Построим диаграмму для множеств А и B. Графически отметим дизъюнкцию, заштриховав оба круга цветом.

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Теперь отобразим инверсию, заштриховав область за пределами множеств.

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Обратим внимание на правую часть равенства. В первую очередь отобразим инверсию A штриховкой область за пределами круга множества A цветом.

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Проведем аналогичную операцию с множеством B.

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Теперь штриховкой черным цветом всех областей пересечения отобразим конъюнкцию инверсий множеств А и B.

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

При сравнении области для отображения правой и левой частей, становится очевидно, что они равны. Справедливость логического равенства доказана с помощью диаграммы Эйлера-Венна.

Примеры задач с решением

Задача

Группа туристов из 100 человек пробыла в городе N три дня. За это время в ресторане питались 28 туристов, фастфуде — 42, кофейне — 30. И в ресторане, и в фастфуде побывало 10 человек; в ресторане и кофейне — 8; в фастфуде и кофейне — 5. Все во всех трех местах побывали три человека. Сколько туристов питалось в других местах и не посетило ни одного из перечисленных?

Решение

В условии задачи три множества — Р, Ф и К. Туристы, которые пытались в ресторане, фастфуде и кофейне, соответственно. Универсальное множество U — это множество всех туристов группы. Запишем условие задачи, где n(X) — количество элементов множества X.

Необходимо найти \(n(Р\;\cup\;Ф\;\cup\;К)\;=\;n\;(U\;\backslash\;(Р\;\cap\;Ф\;\cap\:К))\)

В решении задачи поможет представление данных графически с помощью диаграммы Эйлера-Венна. Составляя ее, важно помнить, что если в \(Р\;\cap\;Ф\;\cap\:К\) три элемента, а в множестве \(Р\;\cap\;Ф\) — 10 элементов, то в диаграмме в месте пересечений множеств Р и Ф мы проставляем 7 элементов, так как 3 элемента уже учтено.

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Теперь, когда на диаграмме все элементы учтены по одному разу, можно вычислить количество туристов, которые побывали хотя бы одном из заведений.

Тогда, количество туристов, которые не побывали ни в ресторане, ни в фастфуде, ни в кофейне можно вычислить следующим образом:

Ответ: 20 туристов не побывали ни в одном из указанных заведений.

Задача

На олимпиаде по математике школьникам предложили решить три задачи: одну по алгебре, одну по геометрии, одну по тригонометрии. В олимпиаде участвовало 1000 школьников. Результаты олимпиады были следующие: задачу по алгебре решили 800 участников, по геометрии — 700, по тригонометрии — 600. 600 школьников решили задачи по алгебре и геометрии, 500 — по алгебре и тригонометрии, 400 — по геометрии и тригонометрии. 300 человек решили задачи по алгебре, геометрии и тригонометрии. Сколько школьников не решило ни одной задачи?

Решение

Начнем с определения множеств и введения обозначений. В данном случае, их три:

Используя диаграмму Эйлера-Венна графически изобразим информацию, данную в условии задачи.

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Теперь используя диаграмму, обозначим область, которую необходимо найти:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Определим количество школьников для всех возможных областей.

Обозначим искомую область А = 0, Г = 0, Т = 0 как «х».

Найдем остальные области:

Теперь внесем значения всех областей в диаграмму:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

\((A\;\cup\;Г\;\cup\;Т)\;=\; 0 + 0 + 0 + 300 + 300 + 200 + 100 = 900\)

Ответ: 100 школьников не решило ни одной задачи.

Источник

Диаграммы Венна

Что такое диаграмма Венна

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Диаграмма Венна — это схема с пересекающимися кругами, которая показывает, как много общего имеют различные множества. Для построения диаграммы Венна выбирают несколько групп объектов и размещают их в отдельных кругах, при этом в область пересечения кругов попадают объекты, совмещающие в себе свойства данных множеств.

Приведем простейший пример. Допустим, у нас есть две группы объектов — световые устройства (обозначим их в первом круге) и энергосберегающие технологии (обозначим их во втором круге). В данном случае область пересечения кругов будет охватывать объекты, которые можно отнести и к первой, и ко второй группе, то есть энергосберегающие световые устройства.

Диаграммы Венна с успехом применяются в математике, логике, менеджменте и других прикладных областях для сопоставления каких-либо множеств и установления взаимосвязей между ними.

Единственный минус таких диаграмм — они могут быть использованы лишь для определения общих качеств рассматриваемых объектов и не дают информации о количестве объектов.

Диаграммы Венна: для чего они нужны

К диаграммам Венна прибегают для сравнения исходных данных в двух случаях:

Благодаря визуальной форме подачи информации и простоте расшифровки диаграммы Венна значительно облегчают процесс осмысления и анализа сравниваемых объектов. Именно поэтому они нашли широкое применение при проведении презентаций.

Рекомендации по созданию диаграмм Венна

Рисование диаграммы Венна — это совсем не сложный процесс, который включает всего четыре этапа:

Источник

Диаграмма Венна

Опубликовано 10.06.2020 · Обновлено 14.06.2021

Что такое Диаграмма Венна?

Диаграмма Венна – это иллюстрация, в которой круги используются для отображения отношений между вещами или конечными группами вещей. Перекрывающиеся круги имеют общие черты, в то время как круги, которые не перекрываются, не имеют этих черт.

Ключевые моменты

Понимание диаграммы Венна

Английский логик Джон Венн популяризировал диаграмму в 1880-х годах. Он назвал их кругами Эйлера в честь швейцарского математика Леонарда Эйлера, создавшего аналогичные диаграммы в 1700-х годах.

Термин диаграмма Венна не появлялся до 1918 года, когда Кларенс Льюис, американский академический философ и возможный основатель концептуального прагматизма, назвал круговое изображение диаграммой Венна в своей книге Обзор символической логики.

Краткая справка

Диаграммы Венна используются с середины 20-го века в классах от уровня начальной школы до вводной логики.

Венн изучал и преподавал логику и теорию вероятностей в Кембриджском университете, где он разработал свой метод использования диаграмм для иллюстрации раздела математики, известного как теория множеств.

Приложения для диаграмм Венна

Диаграммы Венна используются для отображения того, как элементы соотносятся друг с другом на общем фоне, вселенной, наборе данных или среде. Диаграмму Венна можно использовать, например, для сравнения двух компаний в одной отрасли, иллюстрируя продукты, предлагаемые обеими компаниями (где круги перекрываются), и продукты, которые являются эксклюзивными для каждой компании (внешние круги).

Примеры диаграмм Венна

Для иллюстрации фруктов красного или оранжевого цвета можно нарисовать диаграмму Венна. Ниже мы видим, что есть оранжевые фрукты (круг B), такие как хурма и мандарины, а яблоки и вишня (круг A) красного цвета. Перец и помидоры бывают красного и оранжевого цветов, что представлено областью перекрытия двух кругов.

Ниже мы видим, что Car A – это седан, который работает на бензине и имеет скорость 20 миль на галлон, а Car B – гибрид, который имеет 40 миль на галлон за пробег и является хэтчбеком.

Заштрихованная область, где два круга перекрываются, показывают общие черты обоих автомобилей, в том числе радио, 4 двери, возможность Bluetooth и подушки безопасности.

Диаграмма Венна наглядно показывает сходства и различия между двумя автомобилями, чтобы помочь решить, какой из них купить.

Источник

Как построить диаграмму Венна с 50 кругами? Визуализация множеств и история моего Python-проекта с открытым кодом

Всем привет, меня зовут Фёдор Индукаев, я работаю аналитиком в Яндекс.Маршрутизации. Сегодня хочу рассказать вам про задачу визуализации пересекающихся множеств и про пакет для Python с открытым кодом, созданный мной для её решения. В процессе мы узнаем, чем различаются диаграммы Венна и Эйлера, познакомимся с сервисом распределения заказов и по касательной заденем такую область науки, как биоинформатика. Двигаться будем от простого к более сложному. Поехали!

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

О чём речь и зачем это нужно?

Почти каждому, кто занимался разведочным анализом данных, хотя бы раз приходилось искать ответ на вопросы такого типа:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Все перечисленные вопросы можно свести к одной и той же формулировке. Она звучит так: даны несколько конечных множеств, возможно, пересекающихся между собой, и надо оценить их взаимное расположение — то есть понять, как именно они пересекаются.

Речь пойдёт о визуализациях и программных инструментах, помогающих решать эту задачу.

Диаграммы Венна

Такие рисунки с двумя или тремя кругами, думаю, знакомы каждому и не требуют объяснения:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Особенность диаграммы Венна в том, что она статична. Фигуры на ней равновелики и расположены симметрично. На рисунке изображаются все возможные пересечения, даже если большинство из них на самом деле пусты. Такие диаграммы подходят, чтобы проиллюстрировать абстрактные понятия или множества, точные размеры которых неизвестны либо неважны. Основная информация тут содержится не в графике, а в подписях.

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этоДиаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этоИменно такими их замыслил Джон Венн, английский математик и философ. В своей статье 1880 года он предложил диаграммы для графического отображения логических высказываний. К примеру, высказывание «любой Х — это Y либо Z» даёт диаграмму справа (иллюстрация взята из оригинальной статьи). Чёрным закрашена область, не удовлетворяющая высказыванию: те Х, которые не являются ни Y, ни Z. Основной посыл статьи именно в том, что статические рисунки без варьирования формы и расположения фигур лучше подходят для целей логики, чем динамические диаграммы Эйлера, о которых речь пойдёт ниже.

Ясно, что в анализе данных сфера применения диаграмм Венна ограничена. Они дают только качественную информацию, но не количественную и не отражают ни размер, ни даже пустоту пересечений. Если вас это не останавливает, в вашем распоряжении пакет venn, который строит такие диаграммы для Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этомножеств. Для каждого Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этотам есть одна-две типовые картинки, и различаться будут только подписи:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Если же мы хотим что-то более динамически зависящее от данных, стоит обратить внимание на другой подход: диаграммы Эйлера.

Диаграммы Эйлера

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

В отличие от диаграмм Венна, форма и положение фигур на плоскости здесь подобраны так, чтобы показать взаимоотношения множеств или понятий. Если какое-то пересечение пусто, то фигуры тоже по возможности не перекрывают друг друга, как на рисунке о растениях и животных.

Обратите внимание, что рисунок про вопрос на лекции отличается от остальных двух. На нём важно не только положение фигур, но и размеры пересечений — в них и заключен весь юмор.

Эту идею можно использовать и для нашей задачи. Возьмём два-три множества и нарисуем круги с площадями, пропорциональными размерам этих множеств. А затем постараемся расположить круги на плоскости таким образом, чтобы площади перекрытия также были пропорциональны размерам пересечений.

Именно это делает (несмотря на своё название) пакет matplotlib-venn:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Изобразить два множества с точным соблюдением всех пропорций легко. Но уже на трёх метод может давать сбой. Пусть, например, одно из трёх множеств — в точности пересечение остальных двух:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Рисунок выглядит неважно, появилась странная область с цифрой 0. Но удивляться тут нечему, ведь пересечение двух кругов изобразить в виде круга никак не получится.

А вот ещё более удручающий пример: два множества и их симметрическая разность (объединение минус пересечение):

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Получилось что-то совсем странное: обратите внимание, сколько тут нулей!

Первый пример ещё можно спасти, если взять вместо кругов прямоугольники (пересечение прямоугольников — тоже прямоугольник), а для второго нужны как минимум невыпуклые фигуры. Ну а больше трёх множеств данный пакет не поддерживает в принципе.

Других общедоступных инструментов для Python, развивающих подход Эйлера — Венна, я не знаю, и дальше пойдёт уже история моих собственных экспериментов. Но прежде чем продолжить, сделаю небольшое отступление, чтобы объяснить, зачем я вообще взялся за задачу визуализации множеств.

Пару слов об API построения оптимальных маршрутов

Как я говорил, наш отдел делает Яндекс.Маршрутизацию. Один из наших сервисов помогает интернет-магазинам, службам доставки и любым компаниям, чей бизнес включает логистику, строить оптимальные маршруты для транспорта.

Клиенты взаимодействуют с сервисом, отправляя запросы к API. Каждый запрос содержит список заказов (точек доставки) с координатами, интервалами доставки и т.д., а также список машин, которыми нужно развезти заказы. Наш алгоритм переваривает все эти данные и выдаёт оптимальные маршруты с учётом пробок, вместимости машин и много чего ещё.

У нас сотни, а не миллионы клиентов, как у популярных B2C-сервисов Яндекса. Поэтому нам особенно важно счастье каждого клиента, к тому же есть возможность уделять ему больше внимания и глубже погружаться в его задачи. Для этого, в частности, полезно иметь инструменты, помогающие понять, какие запросы нам присылает клиент.

Приведу пример. Допустим, за один день от компании «Ромашка» пришло 24 запроса. Это может означать, что:

Упрощаем задачу: от кругов к полосам

Какое-то время я пользовался пакетом matplotlib-venn, но ограничение в «два с половиной» множества, конечно, расстраивало. Размышляя над разными подходами к задаче, я решил попробовать перейти от кругов и вообще двумерных примитивов к одномерным — горизонтальным полосам. Пересечения тогда можно изображать наложением по вертикали вот таким образом:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Линейные размеры воспринимаются глазом лучше, чем площади, для построения не нужна сложная тригонометрия, а разнесение множеств по оси Y делает график менее перегруженным. К тому же наш первый неудачный пример (два множества и их пересечение в качестве третьего) улучшается сам собой:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Проблема с симметрической разностью пока ещё никуда не делась. Но мы поступим с ней, как Александр Македонский с гордиевым узлом: разрешим, если надо, разрубать одно из множеств на две части:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Красное множество изображено двумя полосами вместо одной, но ничего страшного в этом нет. Обе находятся на одной и той же высоте и имеют один цвет, так что их единство визуально хорошо считывается.

Нетрудно убедиться, что таким способом можно с точным соблюдением пропорций изобразить любые три множества. Тем самым задачу для Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что эторавного 2 или 3 можно считать решённой.

Ещё один плюс такого подхода в том, что его легко применить к любому числу множеств, что мы и сделаем совсем скоро. Всё, что для этого нужно, — разрешить не один, а произвольное число разрывов в строках. Но сперва — немного простой комбинаторики.

Немного арифметики

Посмотрим на диаграмму Венна с тремя кругами и посчитаем, на сколько областей круги разбивают друг друга:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Каждая область определяется тем, лежит она внутри или снаружи каждого из трёх кругов, ну а внешняя область — лишняя. Итого получаем Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это. Другие расположения трёх кругов могут давать меньшее количество областей вплоть до 1, когда все круги совпадают.

Перенося это рассуждение с кругов на множества, получим, что любые Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этомножеств разбивают друг друга не более чем на Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этотаких элементарных частей. Важно, что каждая из этих частей либо целиком входит, либо целиком не входит в любое из данных множеств. В наших новых диаграммах столбцы — это и есть такие элементарные части.

Больше множеств!

Итак, мы хотим обобщить вот такие схемы на случай Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это3$» data-tex=»inline»/>:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Для Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этомножеств у нас получается сетка с Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этостроками и Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что этостолбцами, как мы только что подсчитали. Остаётся пройтись по каждой строке и закрасить ячейки, соответствующие входящим в данное множество элементарным частям.

Для иллюстрации возьмём модельный пример с пятью множествами:

Действуя, как описано выше, получаем вот такой рисунок:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Читается он плохо: в строках слишком много разрывов, все множества порублены в капусту. Но раз нам не нравятся разрывы, то почему бы прямо не поставить задачу — минимизировать их? Ведь порядок столбцов несущественен, ничто не мешает нам переставлять их, как захочется. Приходим к такой задаче: найти перестановку столбцов данной матрицы из нулей и единиц с минимальным числом разрывов между единицами в строках.

Как мне подсказали уже позже, это практически задача коммивояжера в метрике Хэмминга, она NP-полная. Если столбцов получилось немного (скажем, не более 12), то найти нужную перестановку можно полным перебором, а иначе надо прибегать к тем или иным эвристикам.

Применим несложный жадный алгоритм. Назовём похожестью двух столбцов число позиций, на которых значения в этих столбцах совпадают. Возьмём два самых похожих столбца, поставим их вместе. Далее будем жадно наращивать последовательность в обе стороны от этой пары. Среди оставшихся столбцов найдём тот, который наиболее похож на один из этих двух, приставим — и так далее с остальными столбцами.

Вот рисунки до и после применения алгоритма:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Стало гораздо лучше. Именно на этой стадии я почувствовал, что выходит что-то полезное. Поэкспериментировав, я заметил, что алгоритм склонен залипать в локальных минимумах. Это удалось неплохо полечить с помощью простой рандомизации: немного зашумляем значения похожести столбцов, прогоняем алгоритм, повторяем 1000 раз, выбираем лучшее из 1000 решений.

Получился уже вполне рабочий инструмент, но в него можно добавить ещё немного полезной информации. Я сделал два дополнительных графика: на правом выведены размеры исходных множеств, а верхний для каждого пересечения показывает, во сколько из наших множеств оно входит. По сути, это ни что иное, как суммы нашей бинарной матрицы по строкам (справа) и по столбцам (вверху):

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Ещё я добавил опцию упорядочивания самих множеств (т. е. строк) по тому же принципу, что и столбцов: с минимизацией числа разрывов. В итоге похожие множества группируются:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Применение в работе

Естественно, первым делом я стал применять новый инструмент для той задачи, для которой его и создавал: исследовать запросы клиентов к нашему API. Результаты меня порадовали. Вот так, например, выглядел рабочий день одного из клиентов. Каждая строка — запрос к API (множество ID входящих в него заказов), а подписи в середине — время отправки запросов:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Весь день как на ладони. В 10:49 логист клиента с интервалом 23 секунды послал два одинаковых запроса со 129 заказами. С 11:25 до 15:53 было три запроса с другим набором из 152 заказов. В 16:43 пришёл третий уникальный запрос со 114 заказами. К решению этого запроса логист затем применил четыре ручные правки (это можно делать через наш UI).

А так выглядит идеальный день: все независимые задачи решены по одному разу, никаких правок или подбора параметров не потребовалось:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

А вот пример от клиента, отправляющего запросы каждые 15–30 минут, чтобы учесть заказы, поступающие в реальном времени:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Даже на 50 множествах алгоритм хорошо выявил структуру, скрытую в данных. Видно, как старые заказы по мере исполнения убирались из запросов и замещались новыми.

Словом, закрыть созданным инструментом свою рабочую потребность мне вполне удалось.

Banana for scale (not really)

Пока я изучал существующие подходы, мне несколько раз попадался на глаза рисунок из журнала Nature, где сравниваются геномы банана и пяти других растений:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Обратите внимание, как соотносятся размеры областей с 13 и 149 элементами (указаны стрелками): вторая в несколько раз меньше. Так что ни о какой пропорциональности тут нет и речи.

Мне, конечно, захотелось попробовать силы и на таких данных, но результат меня не порадовал:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

График выглядит неряшливо. Причина в том, что, во-первых, почти все пересечения (62 из 63 возможных) непусты, а во-вторых, их размеры различаются на три порядка. В результате числовым аннотациям становится очень тесно.

Чтобы мой инструмент был удобен и для таких данных, я добавил несколько параметров. Один позволяет частично выровнять ширины столбцов, другой прячет аннотации, если ширина столбца меньше заданной величины.

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Такой вариант читается уже вполне неплохо, но ради этого пришлось пожертвовать точной пропорциональностью размеров.

Как оказалось, обратив внимание на сферу биоинформатики, я не прогадал. Я отправил пост о своём инструменте на Reddit в r/visualization, r/datascience и r/bioinformatics, именно в последнем его приняли лучше всего, отзывы были прямо-таки восторженные.

Превращение в продукт

В итоге я понял, что получился неплохой инструмент, который может быть полезен многим. Поэтому родилась идея превратить его в полноценный пакет с открытым исходным кодом. Конечно, нужно было согласие руководителей, но ребята не только не возражали, но и поддержали меня, за что им большое спасибо.

Работая в основном по выходным, я начал понемногу приводить код в товарный вид, писать тесты и разбираться с системой пакетов в Python. Это мой первый проект такого рода, поэтому всё заняло несколько месяцев.

Придумать хорошее название тоже оказалось непростой задачей, и справился я с ней плоховато. Выбранное имя (supervenn) нельзя назвать удачным, ведь вся соль диаграмм Венна в их статичности, я же, напротив, стремился точно показывать реальные размеры. Но когда я это осознал, проект уже вышел в свет и менять название было поздно.

Аналоги

Конечно, я не первый использовал этот подход к визуализации множеств: идея, в общем-то, лежит на поверхности. В открытом доступе есть два похожих веб-приложения: RainBio и Linear Diagram Generator, второе использует в точности тот же принцип, что и у меня. (Авторы вдобавок написали статью на 40 страниц, где экспериментально сравнили, что лучше воспринимается — горизонтальные или вертикальные линии, тонкие или толстые и т. п. Мне даже показалось, что для них первичной была именно статья, а сам инструмент — лишь дополнение к ней.)

Чтобы сравнить эти два приложения с моим пакетом, снова используем пример со словами. Можете сами решить, какой вариант более удобочитаем и информативен.

RainBio

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Linear Diagram Generator

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

supervenn

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Другие подходы

Нельзя не упомянуть проект UpSet, существующий в виде веб-приложения и пакетов для R и Python. Базовый принцип можно понять, посмотрев на отображение данных о геноме банана. График обрезан справа, показаны только 30 пересечений из 62:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Интересно, что если использовать supervenn с сортировкой столбцов по ширине и сделать столбцы одинаковыми с помощью параметра выравнивания ширин, то получится почти то же самое, хотя это и не сразу заметно. Не хватает лишь вертикальных линий с размерами пересечений, вместо них только цифры внизу графика:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Уже при написании этого текста я попробовал воспользоваться Python-версией UpSet, но обнаружил, что пакет не обновлялся с 2016 года, в документации никак не описан формат входных данных, а тестовый пример падает с ошибкой. Веб-версия исправна, в ней много полезных вспомогательных функций, но работать с ней довольно тяжело из-за сложного способа ввода данных.

Наконец, в сети доступен интересный обзор методов визуализации множеств. Далеко не все из них реализованы в виде программных инструментов. Вот несколько картинок для привлечения внимания:

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это

Особенно меня заинтересовал метод Bubble Sets (нижний ряд), позволяющий изображать небольшие множества поверх заданного расположения элементов на плоскости. Это может быть удобно, например, когда элементы привязаны к оси времени (а) или к карте (b). Пока что этот метод реализован только на Java и JavaScript (ссылки есть на странице авторов), и было бы здорово, если бы кто-нибудь взялся портировать его на Python.

Я отправил письма с кратким описанием проекта авторам UpSet и обзора и получил хорошие отзывы. Двое из них даже обещали включить supervenn в свои лекции по визуализации множеств.

Заключение

Если вы захотите воспользоваться пакетом, он доступен на GitHub и в PyPI: pip install supervenn. Я буду благодарен за любые замечания о коде и использовании пакета, за идеи и критику. Особенно буду рад прочитать рекомендации, как улучшить алгоритм перестановки столбцов для больших Диаграмма венна что это. Смотреть фото Диаграмма венна что это. Смотреть картинку Диаграмма венна что это. Картинка про Диаграмма венна что это. Фото Диаграмма венна что это, и советы, как писать тесты для функций построения графиков.

Спасибо за внимание!

Ссылки

2. J.-B. Lamy and R. Tsopra. RainBio: Proportional visualization of large sets in biology. IEEE Transactions on Visualization and Computer Graphics, doi: 10.1109/TVCG.2019.2921544.

3. Peter Rodgers, Gem Stapleton and Peter Chapman. Visualizing Sets with Linear Diagrams. ACM Transactions on Computer Human Interaction 22(6) pp. 27:1-27:39 September 2015. doi:10.1145/2810012.

6. Christopher Collins, Gerald Penn and Sheelagh Carpendale. Bubble Sets: Revealing Set Relations with Isocontours over Existing Visualizations. IEEE Trans. on Visualization and Computer Graphics (Proc. of the IEEE Conf. on Information Visualization), vol. 15, iss. 6, pp. 1009−1016, 2009.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *