2015-11-04 10 views
5

Ich stecke auf, was wahrscheinlich eine einfache Sache ist. Ich verwende die standardmäßige Seaborn-Farbpalette in Matplotlib. Ich möchte zwei Linien zeichnen, die die gleiche Farbe haben und ich möchte diese Farbe definieren. Ich würde gerne die Farben verwenden, die Teil der Standard-Seaborn-Palette sind, d. H. Ich möchte das Seaborn-Rot anstelle des Standardrotes Matplotlib.Matplotlib + Seaborn - zwei Linien mit der gleichen Farbe?

Hier ist mein Code-Schnipsel:

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') 

Wenn ich den obigen Code verwenden, erhalte ich Matplotlib die Standard-rot (wie erwartet). Gibt es eine "einfache" Möglichkeit, es rot zu nennen? Wenn ich die Farben nicht definiere, durchlaufen die Farben den Standardfarbzyklus des Seaborns. Vielen Dank!

Antwort

7

Sie können die Standard Seaborn Farben mit seaborn.color_palette() erhalten (es gibt ein paar verschiedene Paletten, die Sie durch diese Funktion erhalten können). So können Sie tun:

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]) 

Sie haben über den Standard gehen selbst Palette und arbeiten heraus, welchen Wert Farbe entspricht, gibt es keine hilfreich Namen wie ‚rot‘ an den RBG-Werten von dem, was ich habe gesehen.

+1

Das ist genau das, was ich gesucht habe. Vielen Dank! –

+0

Siehe meine Antwort für eine bessere Möglichkeit, dies in späteren Versionen von Seaborn zu tun. – mwaskom

7

In Seaborn 0.6 oder später, können Sie seaborn.set_color_codes() oder seaborn.set(color_codes=True) anrufen und "r" wird als Standard Seaborn rot interpretiert.

+0

Dies ist eine gute Option. Danke für das Teilen! –

Verwandte Themen