2017-02-15 4 views
0

Я черчение в цикле этого блока коды:Использование диапазона для Colormap однолинейного участка

fig=plt.figure(figsize=(15,10)) 
ax1=fig.add_subplot(111) 
ax1.plot(item['time'][:-1],item[headerss].iloc[:-1],marker='o') 
ax1.legend(headerss,loc='center left', bbox_to_anchor=(1.0, 0.5)) 
ax1.set_xlabel('time') 
ax1.set_ylabel('concentration (ppb)') 
title=item['date'][0]+' '+item['list'][0]  
ax1.set_title(title) 
fig.savefig(title,bbox_inches='tight') 

товара является dataframe. У меня более 20 item['concentrations'], и я хотел бы иметь столько разных цветов, не создавая цикл на линии ax1.plot.

Могу ли я использовать существующий набор цветов, таких как палитры Python?

Приветствия

ответ

1

Графика matplotlib по определению имеет один цвет. Если вы не хотите перебирать точки и строить их по одному, вы можете использовать scatter plot.

ax1.scatter(item['time'][:-1],item[headerss].iloc[:-1],c=range(len(item[headerss].iloc[:-1])),marker='o', cmap="jet") 
0

Вы можете получить цветовую палитру, как plt.afmhot, и использовать его в imshow. Вы можете увидеть different colormaps here.

fig=plt.figure(figsize=(15,10)) 
ax1=fig.add_subplot(111) 
ax1.imshow(item['time'][:-1],item[headerss].iloc[:-1], interpolation='nearest', cmap=plt.afmhot) 
ax1.legend(headerss,loc='center left', bbox_to_anchor=(1.0, 0.5)) 
ax1.set_xlabel('time') 
ax1.set_ylabel('concentration (ppb)') 
title=item['date'][0]+' '+item['list'][0]  
ax1.set_title(title) 
fig.savefig(title,bbox_inches='tight') 
+0

ошибка всплывает говоря модуль «matplotlib.pyplot» не имеет атрибута «afmhot», и если я пытаюсь CMAP = «PuBu», например, я получаю imshow() есть несколько значений для аргумента «CMAP». Более того, imshow выводит это сообщение: объекты DataFrame изменяемы, поэтому их нельзя хэшировать – Sylvain

Смежные вопросы