Недопустимый rgba arg "#" в matplotlib
Я не могу понять, как использовать цвета, пытаясь создать график рассеяния в matplotlib.
Я пытаюсь построить несколько диаграмм разброса с разными цветовыми точками, чтобы показать кластеры.
colors=['#12efff','#eee111','#eee00f','#e00fff','#123456','#abc222','#000000','#123fff','#1eff1f','#2edf4f','#2eaf9f','#22222f' '#eeeff1','#eee112','#00ef00','#aa0000','#0000aa','#000999','#32efff','#23ef68','#2e3f56','#7eef1f','#eeef11'] C=1 fig = plt.figure() ax = fig.gca(projection='3d') for fgroups in groups: X=[np.random.rand(50),np.random.rand(50),np.random.rand(50)] y=[np.random.rand(50),np.random.rand(50),np.random.rand(50)] Z=[np.random.rand(50),np.random.rand(50),np.random.rand(50)] C=(C+1) % len(colors) ax.scatter(X,Y,Z, s=20, c=colors[C], depthshade=True) plt.show()
Ошибка, которую я получаю, выглядит следующим образом:
ValueError: to_rgba: Неверный rgba arg "#" to_rgb: Недопустимый rgb arg "#" не смог преобразовать строку в float: #
Кажется, что он рассматривает эти аргументы rgb как float.
Однако в matplotlib документах цвета написаны в этом стиле http://matplotlib.org/api/colors_api.html
Что мне не хватает?
- matplotlib удалить невидимые фигуры
- Распылитель Python: условия для стилей маркеров?
- Выровнять маркер разметки matplotlib слева и справа
- matplotlib 3D-диаграмма рассеяния с цветом маркера, соответствующим значениям RGB
- Неперекрывающиеся метки меток разметки с использованием matplotlib
Его просто простая опечатка: вам не хватает запятой в конце первой строки colors
(между '#22222f'
и '#eeeff1'
), что означает, что две записи объединяются в строку, которую matplotlib
не может интерпретировать как цвет.
for i in colors: print i #12efff #eee111 #eee00f #e00fff #123456 #abc222 #000000 #123fff #1eff1f #2edf4f #2eaf9f #22222f#eeeff1 #eee112 #00ef00 #aa0000 #0000aa #000999 #32efff #23ef68 #2e3f56 #7eef1f #eeef11
Если вы добавите туда запятую, все будет хорошо.
Чтобы заставить ваш «MCVE» работать, мне пришлось добавить импорт модулей и предположить, что groups
имеют такую же длину, как и colors
:
import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np colors=['#12efff','#eee111','#eee00f','#e00fff','#123456','#abc222','#000000','#123fff','#1eff1f','#2edf4f','#2eaf9f','#22222f', '#eeeff1','#eee112','#00ef00','#aa0000','#0000aa','#000999','#32efff','#23ef68','#2e3f56','#7eef1f','#eeef11'] C=1 fig = plt.figure() ax = fig.gca(projection='3d') groups = range(len(colors)) for fgroups in groups: X=[np.random.rand(50),np.random.rand(50),np.random.rand(50)] Y=[np.random.rand(50),np.random.rand(50),np.random.rand(50)] Z=[np.random.rand(50),np.random.rand(50),np.random.rand(50)] C=(C+1) % len(colors) ax.scatter(X,Y,Z, s=20, c=colors[C], depthshade=True) plt.show()
,import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np colors=['#12efff','#eee111','#eee00f','#e00fff','#123456','#abc222','#000000','#123fff','#1eff1f','#2edf4f','#2eaf9f','#22222f', '#eeeff1','#eee112','#00ef00','#aa0000','#0000aa','#000999','#32efff','#23ef68','#2e3f56','#7eef1f','#eeef11'] C=1 fig = plt.figure() ax = fig.gca(projection='3d') groups = range(len(colors)) for fgroups in groups: X=[np.random.rand(50),np.random.rand(50),np.random.rand(50)] Y=[np.random.rand(50),np.random.rand(50),np.random.rand(50)] Z=[np.random.rand(50),np.random.rand(50),np.random.rand(50)] C=(C+1) % len(colors) ax.scatter(X,Y,Z, s=20, c=colors[C], depthshade=True) plt.show()
- Выбор размера маркера в Matplotlib
- График разметки matplotlib с разными маркерами и цветами
- Python, matplotlib – легенда, основанная на условной переменной –
- matplotlib Медленное вращение 3D-рассеяния
- Как построить график рассеяния с использованием вывода гистограммы в matplotlib?
- Pylab: наложение меток на цвета
- Plotly hoverinfo показывает все точки данных вместо текущей точки