[PYTHON] Zusammenfassung der Grammatik, die bei matplotlib oft vergessen wird

Dies ist ein Memo, das beim Umgang mit der Python-Zeichnungsbibliothek "matplotlib" oft vergessen wird.

2016-11-11 「ax."Zeichen und Pfeile mit Anmerkungen versehen" und fein abgestimmte Überschriften hinzugefügt
2016-11-11 "Position der Locator-Skala" hinzugefügt
2016-12-16 "Locator Scale Position" aktualisiert
2017-02-11 "Out of Frame" -Methode für Legende hinzugefügt

--Umgebung

- Anaconda 4.0.0 (Python 2.7.13)
- CentOS 6.5
- cmap
- plt.xlim() = ax.set_xlim()

** Tendenzplot **

** plt.fill_between ** füllen

Fernkampf-Plot

plt.fill_between(time, value1, value2)
plt.fill_betweenx(depth, profile1, profile2) #Beim Schreiben einer vertikalen Verteilung

fill_demo http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.fill_between

** plt.errorbar ** Fehlerleiste

Plotten mit Fehlerleiste

plt.errorbar(time, value, yerr=value_std)
plt.errorbar(profile, depth, xerr=profile_std) #Zur vertikalen Verteilung

errorbar_demo http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.errorbar

** df.plot ** Grundstück für Pandas

Handlung von pandas.DataFrame

df.plot(x='time', y='value1', ls='-', marker='o', color='k')
df.plot(x='time', y=['value1','value2']) #Zeichnen Sie mehrere Linien in einem Diagramm.
df.plot(x='time', y=['value1','value2'], subplots=True, layout=(1,2)) # ax[0], ax[1]Dargestellt in jedem

--x ist standardmäßig index, daher kann es weggelassen werden, aber ich weiß nicht, wie ich es als y angeben soll. (Y = 'index' führt zu einem Fehler) --y Auslassung zeichnet alle Spalten

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html

** plt.semilogy ** Log-Achsen-Plot

plt.semilogy(x, y) #Die y-Achse ist logarithmisch
plt.semilogx(x, y) #Die x-Achse ist logarithmisch
plt.loglog(x, y) #Beide logarithmisch
ax.plot(x, y)
ax.set_xscale("log") #Kann später eingestellt werden
ax.set_yscale("log", nonposy='clip') #Was tun, wenn es negativ wird?'mask'Es gibt auch

http://matplotlib.org/examples/pylab_examples/log_demo.html http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.semilogy

** ax.annotate ** Buchstaben und Pfeile

ax.annotate('arrowstyle', 
            xy=(0, 1), xycoords='data',      #Die Spitze des Pfeils(xy)Der Achsenwert(data)Spezifiziert durch
            xytext=(-50, 30), 
            textcoords='offset points',      #Zeichenposition(xytext)Der relative Abstand von der Pfeilspitze(offset points)Spezifiziert durch
            arrowprops=dict(arrowstyle="->")
            )

annotation_demo2_00 http://matplotlib.org/examples/pylab_examples/annotation_demo2.html

** Neigen dazu, die Achseneinstellung zu vergessen **

** ax.set_xticklabels ([]) ** Etiketten löschen

Löschen Sie die Achsenbeschriftung (Nummer oder Datumsteil).

fig, ax = plt.subplots(1,2)

ax[0].set_xticklabels([]) #Löschen Sie die x-Achse in der obigen Abbildung

** DateFormatter ** Datumsformat ändern

Ändern Sie das Zeitachsenformat

from matplotlib.dates import DateFormatter

ax.xaxis.set_major_formatter(DateFormatter('%m/%d\n%H:%M'))

http://matplotlib.org/api/dates_api.html#matplotlib.dates.DateFormatter

** Locator ** Skalenposition

** Werteachse **

from matplotlib import ticker

ax.xaxis.set_major_locator(ticker.MultipleLocator(20))           #Alle 20
ax.xaxis.set_major_locator(ticker.MaxNLocator(5))                #Bis zu 5

** Zeitachse **

from matplotlib import dates as mdates

ax.xaxis.set_major_locator(mdates.AutoDateLocator(maxticks=8))   #Bis zu 8
ax.xaxis.set_major_locator(mdates.HourLocator(12))               #12 Uhr
ax.xaxis.set_major_locator(mdates.HourLocator(interval=24))      #Alle 24 Stunden
ax.xaxis.set_major_locator(mdates.DayLocator(np.arange(1,31,7))) #Wöchentlich

** Vergessene Optionen **

** plt.savefig ** Speichern

http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.savefig

** Hintergrundtransparenz **

plt.savefig(filename, transparent=True) # default: False

** Kleine Ränder **

plt.savefig(filename, bbox_inches='tight')

** plt.legend ** Legende

http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.legend

** Ändern Sie die Anordnung **

plt.legend(ncol=2) #Die Nummer jeder Legende nebeneinander (Standard): 1)

** Anzahl der Marker **

plt.legend(numpoints=1) #Vereinheitlichen Sie die Anzahl der Marker (Standard):Aus irgendeinem Grund 2)

Legendenpunkte mit matplotlib abgleichen @ halm

** Aus dem Rahmen nehmen **

plt.legend(bbox_to_anchor=(1.01,1), loc=2, borderaxespad=0)

http://matplotlib.org/users/legend_guide.html#legend-location

** Andere **

** plt.rcParams [] ** Einstellungen

Wenn Sie die Schriftart usw. vor dem Zeichnen festlegen, ist dies schnell erledigt

plt.rcParams["font.size"] = 12 #Schriftgröße ändern (Standard): 10?)

http://matplotlib.org/users/customizing.html

** matplotlibrc ** Standardeinstellungen

Oder es ist einfacher, die Standardeinstellungen zu ändern, also bearbeiten Sie matplotlibrc

matplotlibrc


legend.numpoints = 1

** plt.style.use ** style

Allgemeine Designänderungen

plt.style.use('ggplot')

Referenzseite

Recommended Posts

Zusammenfassung der Grammatik, die bei matplotlib oft vergessen wird
Zusammenfassung der häufig verwendeten Grammatik bei Pandas
matplotlib Zusammenfassung
Zusammenfassung der häufig mit asyncpg ausgeführten Vorgänge
Boto3-API (AWS-Ressourcen mit Python-Bibliothek bearbeiten), die häufig privat verwendet wird
Starten Sie vhost oder Apache neu, was oft vergessen wird
Grammatikzusammenfassung von blockdiag
Animation mit matplotlib
Japanisch mit Matplotlib
Animation mit matplotlib
Histogramm mit Matplotlib
Erstellen Sie eine Animation mit matplotlib
String-Manipulation mit Python & Pandas, die ich oft benutze
Beachten Sie, dass das Schreiben mit Ruby so ist wie das Schreiben mit Python