2015-11-04 14 views
5

Utknąłem na czymś najprostszym. Używam domyślnej palety kolorów seaborn w Matplotlib. Chcę wykreślić dwie linie, które mają ten sam kolor i chcę zdefiniować ten kolor. Chciałbym użyć kolorów, które są częścią domyślnej palety seaborn, tj. Chciałabym, aby seaborn czerwony był zamiast domyślnej czerwieni Matplotlib.Matplotlib + Seaborn - dwie linie o tym samym kolorze?

Oto mój fragment kodu:

import pylab as plot 
import seaborn 

t = np.arange(0.0, 2.0, 0.01) 
s = np.sin(2*np.pi*t) 
plt.plot(t, s, 'r') 
plt.plot(t, 2*s, 'r') 

Jeśli używam powyższy kod, mam domyślny czerwony matplotlib (jak oczekiwano). Czy jest jakiś "łatwy" sposób, aby powiedzieć czerwonemu seabornowi? Jeśli nie zdefiniuję kolorów, kolory będą cyklicznie zmieniać domyślny cykl kolorów seaborn. Dzięki!

Odpowiedz

7

Możesz uzyskać domyślne kolory seaborn za pomocą seaborn.color_palette() (istnieje kilka różnych palet, które możesz uzyskać za pośrednictwem tej funkcji). Więc można zrobić:

t = np.arange(0.0, 2.0, 0.01) 
s = np.sin(2*np.pi*t) 
plt.plot(t, s, c=seaborn.color_palette()[2]) 
plt.plot(t, 2*s, c=seaborn.color_palette()[2]) 

Trzeba przejść przez domyślnie paleta siebie i wyszło, którego wartość odpowiada który kolor, nie ma osób nazwy takie jak „czerwony” przywiązany do wartości RBG od tego, co ja” widziałam.

+1

To jest dokładnie to, czego szukałem. Dziękuję Ci bardzo! –

+0

Zobacz moją odpowiedź na lepszy sposób to zrobić w późniejszych wersjach seaborn. – mwaskom

7

W przypadku seaborn 0.6 lub nowszej można zadzwonić pod numer seaborn.set_color_codes() lub seaborn.set(color_codes=True), a "r" zostanie zinterpretowany jako domyślny czerwony seaborn.

+0

To jest świetna opcja. Dzięki za udostępnienie! –

Powiązane problemy