Ошибка значения: не удается преобразовать тип аргумента в массив rgba?

#python #matplotlib

#python #matplotlib

Вопрос:

Я учусь рисовать scatter с помощью matplotlib. Однако есть ошибка, и, похоже, она связана с аргументом color. Кто-нибудь может объяснить мне ошибку? Я погуглил, но ответа не нашел. Заранее спасибо.

 xActA = range(10)
yActA = np.random.randn(10)
xActQ = range(10)
yActQ = np.random.randn(10)
xRa = np.random.randn(10)
yRa = np.random.randn(10)

f1 = figure(1)
scatter(xActA, yActA, c ='b', marker = 'o', facecolors = True, label = 'Answers')
scatter(xActQ, yActQ,   c ='r', marker = 'o', facecolors = True, label = 'Questions')
xscale('log')
yscale('log')
title('User activity')
xlabel('Number of posts')
ylabel('Number of users')
legend()
f1.show()
f1.savefig('figure7_test.png')
  

Ответ №1:

Вы присваиваете facecolors логическое значение.
Параметр определяется как:

 facecolor or facecolors: matplotlib color arg or sequence of rgba tuples  
  

Просто создайте facecolor = None , и это сработает. Вероятно, вам это не нужно, потому что вы получаете один и тот же цвет для двух графиков. Если вы исключите параметр, вы получите автоматические цвета. Если вам все еще нужны пользовательские цвета, самый простой способ — указать их как цвета matplotlib (‘желтый’, ‘красный’ и т.д.)

Комментарии:

1. Спасибо. Я изменил свой код на: ax1 = scatter (xActA, yActA, color = ‘blue’, s = 20), и появилась новая ошибка: возвращает массив (a, dtype, copy=False, order=порядок) Ошибка значения: задает элемент массива с последовательностью. И на нем есть график без точек рассеяния, но с чем-либо еще. Не могли бы вы сказать мне, в чем ошибка? Большое спасибо.

2. @AnneS по приведенным вами данным трудно сказать. С этими изменениями он все еще должен работать. Итак, проблема в другом месте, которое вы не показываете. Вы должны опубликовать свой новый код и полную обратную трассировку в другом вопросе. Но сначала попытайтесь понять программу, когда она работает, и проанализируйте, что вы изменили, чтобы она не работала

Ответ №2:

Похоже, вы должны предоставить массив значений цвета для facecolors параметра, а не True .