Установите новые цвета кусочка пирога при наведении курсора мыши, используя функцию до длины меток, не задавая новые цвета по отдельности в списке - PullRequest
0 голосов
/ 24 июня 2019

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

Я пробовал использовать библиотеку numpy, но она не сработала. Посмотрите на код:

импорт matplotlib.pyplot как plt

labels = 'A', 'B', 'C', 'D'
sizes = [10, 35, 50, 5]
explode = (0, 0, 0.1, 0)  # only "explode" the 3rd slice (i.e. 'C')

fig1, ax1 = plt.subplots()
wedges, _, __ = ax1.pie(sizes, explode=explode, 
labels=labels,autopct='%1.1f%%',shadow=True, startangle=90)
ax1.axis('equal') 

ocols= [w.get_facecolor() for w in wedges]
ncols= ["gold", "indigo", "purple", "salmon"]

def update(event):
    if event.inaxes == ax1:
        for i, w in enumerate(wedges):
            if w.contains_point([event.x, event.y]):
                w.set_facecolor(ncols[i])
            else:
                w.set_facecolor(ocols[i])
        fig1.canvas.draw_idle()


fig1.canvas.mpl_connect("motion_notify_event", update)

plt.show()

ncols = ocols[np.where((ocols=='red').all(axis=2))]= ['grey']

Я пробовал это, но происходит ошибка с указанием:

ncols = ocols[np.where((ocols=='red').all(axis=2))]= ['grey']
AttributeError: 'bool' object has no attribute 'all'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...