matplotlib Handledning
Komma igång med matplotlib
Sök…
Anmärkningar
Översikt
matplotlib är ett plottbibliotek för Python. Det tillhandahåller objektorienterade API: er för att bädda in tomter i applikationer. Det liknar MATLAB i kapacitet och syntax.
Det är ursprungligen skriven av JDHunter och utvecklas aktivt. Det distribueras under en BSD-stillicens.
versioner
Version | Python-versioner stöds | Anmärkningar | Utgivningsdatum |
---|---|---|---|
1.3.1 | 2,6, 2,7, 3x | Äldre stabil version | 2013/10/10 |
1.4.3 | 2,6, 2,7, 3x | Tidigare stabil version | 2015/07/14 |
1.5.3 | 2,7, 3x | Aktuell stabil version | 2016/01/11 |
2.x | 2,7, 3x | Senaste utvecklingsversionen | 2016/07/25 |
Installation och installation
Det finns flera sätt att installera matplotlib, av vilka vissa beror på det system du använder. Om du har tur kan du använda en pakethanterare för att enkelt installera matplotlib-modulen och dess beroenden.
Windows
På Windows-maskiner kan du försöka använda pip-pakethanteraren för att installera matplotlib. Se här för information om hur du ställer in pip i en Windows-miljö.
OS X
Det rekommenderas att du använder pip- pakethanteraren för att installera matplotlib. Om du behöver installera några av de icke-Python-biblioteken på ditt system (t.ex. libfreetype
) kan du överväga att använda homebrew .
Om du inte kan använda pip av någon anledning, försök sedan installera från källan .
Linux
Helst bör systempaketets manager eller pip användas för att installera matplotlib, antingen genom att installera python-matplotlib
paketet eller genom att köra pip install matplotlib
.
Om detta inte är möjligt (t.ex. har du inga sudo-behörigheter på den maskin du använder), kan du installera från källan med alternativet --user
: python setup.py install --user
. Vanligtvis kommer detta att installera matplotlib i ~/.local
.
Debian / Ubuntu
sudo apt-get install python-matplotlib
Fedora / Red Hat
sudo yum install python-matplotlib
Felsökning
Se matplotlibs webbplats för råd om hur du fixar en trasig matplotlib.
Anpassa en matplotlib-tomt
import pylab as plt
import numpy as np
plt.style.use('ggplot')
fig = plt.figure(1)
ax = plt.gca()
# make some testing data
x = np.linspace( 0, np.pi, 1000 )
test_f = lambda x: np.sin(x)*3 + np.cos(2*x)
# plot the test data
ax.plot( x, test_f(x) , lw = 2)
# set the axis labels
ax.set_xlabel(r'$x$', fontsize=14, labelpad=10)
ax.set_ylabel(r'$f(x)$', fontsize=14, labelpad=25, rotation=0)
# set axis limits
ax.set_xlim(0,np.pi)
plt.draw()
# Customize the plot
ax.grid(1, ls='--', color='#777777', alpha=0.5, lw=1)
ax.tick_params(labelsize=12, length=0)
ax.set_axis_bgcolor('w')
# add a legend
leg = plt.legend( ['text'], loc=1 )
fr = leg.get_frame()
fr.set_facecolor('w')
fr.set_alpha(.7)
plt.draw()
Imperativt mot objektorienterad syntax
Matplotlib stöder både objektorienterad och imperativ syntax för plottning. Den nödvändiga syntaxen är avsiktligt utformad för att vara mycket nära Matlab-syntaxen.
Den nödvändiga syntaxen (ibland kallad "state-machine" -syntax) ger ut en sträng av kommandon som alla verkar på den senaste figuren eller axeln (som Matlab). Den objektorienterade syntaxen, å andra sidan, verkar uttryckligen på objekt (figur, axel, etc.) av intresse. En nyckelpunkt i zen för Python säger att uttryckligen är bättre än implicit så att den objektorienterade syntaxen är mer pythonisk. Emellertid är den nödvändiga syntaxen bekväm för nya konverterade från Matlab och för att skriva små "kastade" plottmanus. Nedan följer ett exempel på de två olika stilarna.
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0, 2, 0.01)
y = np.sin(4 * np.pi * t)
# Imperative syntax
plt.figure(1)
plt.clf()
plt.plot(t, y)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude (V)')
plt.title('Sine Wave')
plt.grid(True)
# Object oriented syntax
fig = plt.figure(2)
fig.clf()
ax = fig.add_subplot(1,1,1)
ax.plot(t, y)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Amplitude (V)')
ax.set_title('Sine Wave')
ax.grid(True)
Båda exemplen ger samma plot som visas nedan.
Två dimensionella (2D) matriser
Visa en tvådimensionell (2D) matris på axlarna.
import numpy as np
from matplotlib.pyplot import imshow, show, colorbar
image = np.random.rand(4,4)
imshow(image)
colorbar()
show()