Если вы хотите контролировать, какие цвета содержит ваша диаграмма p ie, и в то же время не выходить за рамки удобной обработки цветовых карт в matplotlib, вам может понадобиться посмотреть пример документации Nested р ie графики . Извлеченные блики:
import matplotlib.pyplot as plt
import numpy as np
Извлечение названной карты цветов и «ручной подбор», используя пронумерованный диапазон, подходящих цветов. Выбор индекса в inner_colors
соответствует оттенкам для большего числа точек данных во внутреннем круге:
cmap = plt.get_cmap("tab20c")
outer_colors = cmap(np.arange(3)*4)
inner_colors = cmap(np.array([1, 2, 5, 6, 9, 10]))
Фактическое построение, включая некоторые настройки, в таком случае является простым:
fig, ax = plt.subplots()
size = 0.3
vals = np.array([[60., 32.], [37., 40.], [29., 10.]])
ax.pie(vals.sum(axis=1), radius=1, colors=outer_colors,
wedgeprops=dict(width=size, edgecolor='w'))
ax.pie(vals.flatten(), radius=1-size, colors=inner_colors,
wedgeprops=dict(width=size, edgecolor='w'))
Бонусное содержание в связанном местоположении: как добиться того же результата, используя график bar
, но используя полярные координаты. Таким образом, вы получаете больше гибкости по сравнению с точным замыслом, если цели отличаются от значений по умолчанию, принятых в pie
.