Как маркировать диаграммы Венна в процентах от заданных размеров в python? - PullRequest
0 голосов
/ 25 ноября 2018

Я использую функцию matplotlib_venn.venn2 для построения четырех разных диаграмм Венна на одном рисунке.

Мои входные данные для аргументов подмножества функции представляют собой наборы строк:

    cse_set_ucb = set(['data science','algorithms', 'machine learning',...])

    ece_set_ucb = set(['circuits', 'signals', 'machine learning',....])

    v_ucb = venn2([cse_set_ucb,ece_set_ucb],set_labels=['CSE','ECE'],set_colors=['r','g'])

и аналогично для v_ucla, v_ucsb и v_ucsd.

Текущий результат:

enter image description here

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

Например, первый график будет заменен на:

enter image description here

Единственная альтернатива, о которой я могу подумать сейчас, - это нормализацияЯ как-то сам, а затем вводить подмножества размеров в функцию venn2, а не в наборы, но я надеялся на более умный способ сделать это

1 Ответ

0 голосов
/ 27 ноября 2018

Существует аргумент subset_label_formatter , который управляет этикетками, напечатанными с использованием функции.

total = len(set_a.union(set_b))
v1 = venn2([set_a,set_b],set_labels=labels_depts,set_colors=['red','green'],subset_label_formatter=lambda x: f"{(x/total):1.0%}")

enter image description here

Ссылка:

1) Проценты в диаграммах Венна

2) Добавить параметр, чтобы разрешить форматирование меток подмножества размеров

...