Я создаю подзаголовки диаграмм Венна, которые создаются с помощью matplotlib_venn
. Вот сюжет, который я создаю:
Обратите внимание на отсутствующий заголовок в правом верхнем углу. Это потому, что всякий раз, когда я вызываю ax.set_title
, он заменяет существующие заголовки подзаговоров. Код для создания этого сюжета был:
oadoi_colors = ['all', 'closed', 'closed + green', 'bronze', 'green', 'hybrid', 'gold']
collections = ['Combined', 'Crossref', 'Unpaywall', 'Web of Science']
figure, axes = matplotlib.pyplot.subplots(nrows=len(oadoi_colors), ncols=len(collections), figsize=(2.7 * len(collections), 2.7 * len(oadoi_colors)))
subplot_label_rectprops = {'facecolor': '#fef2e2', 'boxstyle': 'round'}
for (oadoi_color, collection), df in coverage_df.groupby(['oadoi_color', 'collection']):
i = oadoi_colors.index(oadoi_color)
j = collections.index(collection)
ax = axes[i, j]
venn_plotter(df, ax=ax)
if i == 0:
text = ax.set_title(collection, loc='center', y=1.1)
text.set_bbox(subplot_label_rectprops)
# Top-right subplot cannot titled twice: https://stackoverflow.com/questions/36602347
if j == len(collections) - 1:
text = ax.set_title(oadoi_color.title(), x=1.1, y=0.5, verticalalignment='center', rotation=270)
text.set_bbox(subplot_label_rectprops)
venn_plotter
- это функция, которая вызывает matplotlib_venn.venn3_unweighted
. df
- это pandas.DataFrame
данных.
В демонстрации заголовков matplotlib кажется, что вы можете установить несколько заголовков ... но Я не могу понять, как это сделать с подсюжетами.
Есть ответ на аналогичный вопрос, в котором предлагается использовать set_ylabel
. Однако установка ylabel не влияет на эти графики Venn.