Ответ 1
Существует красивое дополнение диаграммы Венна для matplotlib, называемое matplotlib-venn. Похоже, что он может быть полностью настроен для того, чтобы делать то, что вы ищете, от размера кругов (пропорционально заданному размеру) до внутренних и внешних меток.
Использование кода примера на веб-сайте дает такой график, как:
Изменить: В комментариях ниже следующего кода отображаются неперекрывающиеся круги с текстом с использованием той же библиотеки:
import pylab as plt
from matplotlib_venn import venn3, venn3_circles
v = venn3(subsets=(1,1,0,1,0,0,0))
v.get_label_by_id('100').set_text('First')
v.get_label_by_id('010').set_text('Second')
v.get_label_by_id('001').set_text('Third')
plt.title("Not a Venn diagram")
plt.show()
Дает диаграмму: