2016-06-28 16 views
0

Im folgenden Beispiel verwendet das Fehlerbalken-Diagramm nicht den in axes rc angegebenen Markierungszyklus, obwohl es den Farbzyklus verwendet. Die Angabe fmt statt in der cycler löst eine AttributeError: Unknown property fmt. Wie kann ich die prop_cycle verwenden, um die Marker eines Fehlerbalkenplots anzugeben? Ich benutze Matplotlib 1.5.1 und Python 3.5.1.Das Matplotlib-Fehlerbalken-Diagramm verwendet keine Marker-Zyklen

import matplotlib.pyplot as plt 
from cycler import cycler 
plt.rc('axes', prop_cycle=cycler(color=['orange', 'violet', 'darkgreen'], 
           marker=['s', 'o', 'd'])) 
plt.rc('lines', linestyle=None) 
plt.errorbar((0, 1), (1, 0), yerr=(0.1, 0.1)) 
plt.errorbar((0, 1), (0, 1), yerr=(0.1, 0.1)) 
plt.errorbar((0, 1), (0.5, 0.75), yerr=(0.1, 0.1)) 

enter image description here

Antwort

0

Obwohl dies die Frage aufgeworfen nicht antwortet, gibt es zwei Möglichkeiten, um dieses mit einem prop_cycle zu bekommen. Eine besteht darin, einfach eine for-Schleife zu verwenden, um die Graphen zu konstruieren. Wenn Sie keine for-Schleife verwenden möchten, können Sie eine Generatorfunktion für yield Werte der Markierungen definieren. Dies hat den Nachteil, dass es nicht automatisch für jede Achse zurückgesetzt wird, aber ich denke, es ist einfacher zu verwenden als eine for Schleife. Die Anweisung while True: ist erforderlich, damit die Schleife an den Anfang zurückkehrt, als ob es sich um einen Zyklus von zu verwendenden Markern handelt.

import matplotlib.pyplot as plt 
from cycler import cycler 

def mfunc(syms): 
    while True: 
     for s in syms: 
      yield s 

markers = ['s', 'o'] 
mark = mfunc(markers) 
plt.rc('axes', prop_cycle=cycler(color=['orange', 'violet', 'darkgreen'])) 
plt.rc('lines', linestyle=None) 
plt.errorbar((0, 1), (1, 0), yerr=(0.1, 0.1), marker=next(mark)) 
plt.errorbar((0, 1), (0, 1), yerr=(0.1, 0.1), marker=next(mark)) 
plt.errorbar((0, 1), (0.5, 0.75), yerr=(0.1, 0.1), marker=next(mark)) 

enter image description here

Verwandte Themen