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()
Fernkampf-Plot
plt.fill_between(time, value1, value2)
plt.fill_betweenx(depth, profile1, profile2) #Beim Schreiben einer vertikalen Verteilung
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.fill_between
Plotten mit Fehlerleiste
plt.errorbar(time, value, yerr=value_std)
plt.errorbar(profile, depth, xerr=profile_std) #Zur vertikalen Verteilung
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.errorbar
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(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('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="->")
)
http://matplotlib.org/examples/pylab_examples/annotation_demo2.html
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
Ä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
** 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
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')
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
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
Oder es ist einfacher, die Standardeinstellungen zu ändern, also bearbeiten Sie matplotlibrc
matplotlibrc
legend.numpoints = 1
Allgemeine Designänderungen
plt.style.use('ggplot')
Recommended Posts