2016-08-03 15 views
6

Ich suche nach einem zuverlässigen Weg, um Linienstile für meine Plots automatisch zu wählen. Im Moment habe ich 8 Zeilen für eine Handlung und ich hoffe, dass es möglich ist, automatisch Linienstile zu wählen, die voneinander unterscheidbar sind.Der zuverlässigste Weg, Linienmuster automatisch in Matplotlib in Kombination mit Seaborn zu wählen

Ab sofort habe ich grundsätzlich zwei Möglichkeiten. Markierungen setzen oder Stile definieren Beide scheinen Probleme mit dem Seebarsch zu haben. Die erste ist ein Cycler zu verwenden:

plt.rc('axes', prop_cycle=cycler('linestyle', ['-', '--', ':', '-.'])) 

Wenn ich, dass es entweder überschreibt Seaborn Einstellungen, oder es wird von Seaborn überschrieben, je nachdem welcher ich zum ersten Mal eingestellt. Die andere Art, wie ich in einem der Beispiele gefunden und setzt die Markierungen für die Linien:

def makeStyles(): 
    markers = [] 
    for m in Line2D.markers: 
     try: 
      if len(m) == 1 and m != ' ': 
       markers.append(m) 
     except TypeError: 
      pass 

    styles = markers + [ 
     r'$\lambda$', 
     r'$\bowtie$', 
     r'$\circlearrowleft$', 
     r'$\clubsuit$', 
     r'$\checkmark$'] 
    return styles 

Das Problem hierbei ist, dass einige ganz der Marker scheinen die gleichen zu sein, die ohne eine nur eine Zeile Marker.

Gibt es eine andere Möglichkeit, die zuverlässig funktioniert und mit Seaborn funktioniert?

Antwort

0

Wenn Sie die rcParams behalten möchten, dass Sie in matplotlib und sind mit der neuesten Version von Seaborn (> = 0.7.1), ist der einfachste Weg import seaborn.apionly wie in what's new

erklärt zu verwenden