matplotlib
Koordinatsystem
Sök…
Anmärkningar
Matplotlib har fyra distinkta koordinatsystem som kan utnyttjas för att underlätta placeringen av olika objekt, t.ex. text. Varje system har ett motsvarande transformationsobjekt som transformerar koordinater från det systemet till det så kallade displaykoordinatsystemet.
Datakoordinatsystem är det system som definieras av data på respektive axel. Det är användbart när du försöker placera ett objekt i förhållande till de planerade data. Intervallet ges av xlim
och ylim
egenskaper Axes
. Dess motsvarande transformationsobjekt är ax.transData
.
Axelkoordinatsystem är det system som är bundet till sitt Axes
objekt. Punkterna (0, 0) och (1, 1) definierar axlarnas nedre vänstra och högra höger. Som sådan är det användbart vid placering relativt axlarna, som tomtens övre mitt. Dess motsvarande transformationsobjekt är ax.transAxes
.
Figurkoordinatsystem är analogt med axelns koordinatsystem, förutom att det är bundet till Figure
. Punkter (0, 0) och (1, 1) representerar figurens nedre vänstra och övre högra hörn. Det är användbart när du försöker placera något relativt hela bilden. Dess motsvarande transformationsobjekt är fig.transFigure
.
Visningskoordinatsystem är bildsystemet i pixlar. Punkter (0, 0) och (bredd, höjd) är bildens eller displayens längst ner till vänster och högra höger. Det kan användas för positionering absolut. Eftersom transformationsobjekt transformerar koordinater till detta koordinatsystem har visningssystemet inget transformationsobjekt associerat med det. Men None
eller matplotlib.transforms.IdentityTransform()
kan användas vid behov.
Mer information finns här .
Koordinatsystem och text
Koordinatsystemen för Matplotlib är mycket praktiska när du försöker kommentera tomterna du gör. Ibland vill du placera text relativt till dina data, till exempel när du försöker märka en specifik punkt. Andra gånger kanske du vill lägga till en text ovanpå figuren. Detta kan enkelt uppnås genom att välja ett lämpligt koordinatsystem genom att överföra ett transformationsobjekt till transform
i uppmaning till text()
.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([2.], [3.], 'bo')
plt.text( # position text relative to data
2., 3., 'important point', # x, y, text,
ha='center', va='bottom', # text alignment,
transform=ax.transData # coordinate system transformation
)
plt.text( # position text relative to Axes
1.0, 1.0, 'axes corner',
ha='right', va='top',
transform=ax.transAxes
)
plt.text( # position text relative to Figure
0.0, 1.0, 'figure corner',
ha='left', va='top',
transform=fig.transFigure
)
plt.text( # position text absolutely at specific pixel on image
200, 300, 'pixel (200, 300)',
ha='center', va='center',
transform=None
)
plt.show()