Я работаю с данными, у которых есть 3 параметра построения графика: x, y, c. Как создать собственное значение цвета для диаграммы рассеяния?
Расширяя этот пример, я пытаюсь сделать:
import matplotlib
import matplotlib.pyplot as plt
cm = matplotlib.cm.get_cmap('RdYlBu')
colors=[cm(1.*i/20) for i in range(20)]
xy = range(20)
plt.subplot(111)
colorlist=[colors[x/2] for x in xy] #actually some other non-linear relationship
plt.scatter(xy, xy, c=colorlist, s=35, vmin=0, vmax=20)
plt.colorbar()
plt.show()
но результат TypeError: You must first set_array for mappable
python
colors
matplotlib
Адам Гринхолл
источник
источник
'AxesSubplot' object has no attribute 'colorbar'
. Я сделалax.colorbar()
... что я делаю не так?Вот способ добавления палитры в ООП:
источник
plt
Я думаю, что правильный ответ, напрямую использовать для построения цветовой шкалы, не рекомендуется. Ваш способ рекомендуется.Если вы хотите разброс по двум переменным и цвет по третьей, Альтаир может стать отличным выбором.
Создание набора данных
import matplotlib.pyplot as plt import numpy as np import pandas as pd df = pd.DataFrame(40*np.random.randn(10, 3), columns=['A', 'B','C'])
Заговор Альтаира
from altair import * Chart(df).mark_circle().encode(x='A',y='B', color='C').configure_cell(width=200, height=150)
участок
источник