2010-12-08 4 views
12

Можно ли изменять цвета, которые выполняет Matplotlib, когда он генерирует свои собственные цвета для линий графика? Я использую модуль pylab.Цветовая палитра Matplotlib

from pylab import * 
import matplotlib.cm as cm 

x=[1,2,3,4] 
y=[5,6,7,8] 

fig1 = Figure() 

plot1 = fig1.add_subplot(311) 
plot1.plot(x,y) 

plot2 = fig1.add_subplot(312) 
plot2.plot(x,y) 

plot3 = fig1.add_subplot(313) 
plot3.plot(x,y) 

ответ

12

Цвета выделены из цветных карт. Вы можете использовать one of the predefined colormaps, или define your own.

К сожалению, нет никакой возможности использовать несколько цветовых карт за фигурой, вы должны сделать это вручную:

import pylab as pl 
import matplotlib.cm as cm 

xval = pl.arange(0, 20, 0.2) 

pl.subplot(311) 
pl.plot(xval, pl.sin(xval), c=cm.summer(0)) 

pl.subplot(312) 
pl.plot(xval, pl.cos(xval), c=cm.spring(0)) 

pl.subplot(313) 
pl.plot(xval, pl.arctan(xval), xval, pl.fabs(xval)) 

pl.show() 

+0

Как вы на самом деле применить цветовую палитру для сюжета? Я получаю ошибки, если я применяю его к фигуре, подзаголовку и т. Д. Является ли это эзотерическим библиотечным модулем? – thenickname 2010-12-08 16:56:50

+0

Это совсем не эзотерика, Matplotlib использует его все время. Что вы пробовали? Существует множество способов применения цветовой карты: используя предопределенные методы в модуле `pyplot` /` pylab`, используя аргументы ключевых слов или вручную извлекая цвета, вызывая объект colormap. – Philipp 2010-12-08 17:33:35

22

Да, конечно. Потому что он принимает много видов определения цвета. Легко определить собственную цветовую карту. Здесь я просто получить цвета из палитры hot

import pylab as py 
import numpy as np 
import matplotlib.cm as cm 
a = np.arange(0,10) 

py.figure() 
for i in np.arange(10): 
    c = cm.hot(i/10.,1) 
    py.plot(a,i*a,color=c) 

py.show() 

alt text

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