Измените автоматический цвет matplotlib на шестнадцатеричные цвета автоматически python3 - PullRequest
0 голосов
/ 11 июня 2018

Я создал круговую диаграмму с помощью matplotlib, и я хотел бы изменить цвета по умолчанию на более мягкие цвета, такие как шестнадцатеричные цвета RGB или RGBA.Пока у меня есть скрипт ниже:

colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99']
explode = ((0.05,)*(len(annotation_df.index)))
fig1, ax1 = plt.subplots()
ax1.pie(annotation_df['count'], labels=annotation_df['annotation'], autopct='%1.1f%%', startangle=90, pctdistance=0.85, explode=explode,colors=colors)  #colors=colors,
# draw circle
centre_circle = plt.Circle((0, 0), 0.70, fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
# Equal aspect ratio ensures that pie is drawn as a circle
ax1.axis('equal')
plt.tight_layout()
plt.show()

Проблема в том, что мне нужно, чтобы цвета устанавливались автоматически, и я не хочу специально писать цвета, как написано выше в скрипте.

Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете определить цветовой цикл, который будет содержать цвета, которые вы хотите использовать.

import matplotlib.pyplot as plt

plt.rcParams['axes.prop_cycle'] = plt.cycler('color', 
                                             ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99'])

fig1, ax1 = plt.subplots()
ax1.pie([1,2,3], labels=list("ABC"), autopct='%1.1f%%')

ax1.axis('equal')
plt.tight_layout()
plt.show()

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

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