Это создает x и y длиной 20 и 20 RGB-триплетов. Я хотел бы назначить каждый цвет одной точке и начать с этого ответа и ответов на очень старый вопрос Как получить разноцветные линии для разных графиков на одной фигуре? .
Но вместо двадцати случайных точек случайных цветов я получаю этот странный вывод, который заставляет меня думать, что я больше ничего не понимаю.
Вопрос: Как можно ли назначить эти 20 случайных цветов 20 случайным парам x, y?
import numpy as np
import matplotlib.pyplot as plt
ran = np.random.random((5, 20))
x, y = ran[:2]
colors = ran[2:].T
print('colors.shape', colors.shape)
colors = [list(thing) for thing in colors] # removing this line doesn't affect the result
fig, ax = plt.subplots()
ax.plot(x, y, 'o', colors) # ax.plot(x, y, 'o', color=colors) throws exception
plt.show()
Примечание: Если вместо Я пытаюсь ax.plot(x, y, 'o', color=colors)
Я получаю ошибки:
File "/path/to/matplotlib/colors.py", line 177, in to_rgba
rgba = _to_rgba_no_colorcycle(c, alpha)
File "/path/to/matplotlib/colors.py", line 240, in _to_rgba_no_colorcycle
raise ValueError("Invalid RGBA argument: {!r}".format(orig_c))
ValueError: Invalid RGBA argument: