Noter
Cliquez ici pour télécharger l'exemple de code complet
Tutoriel d'artiste #
Utilisation d'objets Artist pour le rendu sur le canevas.
Il y a trois couches dans l'API Matplotlib.
la
matplotlib.backend_bases.FigureCanvas
est la zone sur laquelle la figure est dessinéele
matplotlib.backend_bases.Renderer
est l'objet qui sait tirer sur leFigureCanvas
et le
matplotlib.artist.Artist
est l'objet qui sait comment utiliser un moteur de rendu pour peindre sur la toile.
Le FigureCanvas
et
Renderer
gèrent tous les détails de la communication avec les boîtes à outils de l'interface utilisateur comme wxPython ou les langages de dessin comme PostScript®, et le Artist
gère toutes les constructions de haut niveau comme la représentation et la mise en page de la figure, du texte et des lignes. L'utilisateur type passera 95 % de son temps à travailler avec Artists
.
Il en existe deux types Artists
: les primitives et les conteneurs. Les primitives représentent les objets graphiques standard que nous voulons peindre sur notre canevas :
Line2D
, Rectangle
,
Text
, AxesImage
, etc., et les conteneurs sont des emplacements pour les mettre ( Axis
,
Axes
et Figure
). L'utilisation standard est de créer une Figure
instance, d'utiliser le Figure
pour créer une ou plusieurs instances Axes
ou
Subplot
et d'utiliser les Axes
méthodes d'assistance d'instance pour créer les primitives. Dans l'exemple ci-dessous, nous créons une
Figure
instance à l'aide de matplotlib.pyplot.figure()
, qui est une méthode pratique pour instancier des Figure
instances et les connecter à votre interface utilisateur ou à votre boîte à outils de dessin.FigureCanvas
. Comme nous le verrons ci-dessous, ce n'est pas nécessaire -- vous pouvez travailler directement avec des instances PostScript, PDF Gtk+ ou wxPython FigureCanvas
, instancier Figures
directement vos instances et les connecter vous-mêmes -- mais puisque nous nous concentrons ici sur l'
Artist
API, nous allons nous en pyplot
charger de ces détails pour nous :
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1) # two rows, one column, first plot
C'est Axes
probablement la classe la plus importante de l'API Matplotlib, et celle avec laquelle vous travaillerez la plupart du temps. En effet, Axes
est la zone de traçage dans laquelle se trouvent la plupart des objets et Axes
possède de nombreuses méthodes d'assistance spéciales ( plot()
,
text()
,
hist()
,
imshow()
) pour créer les primitives graphiques les plus courantes ( Line2D
,
Text
,
Rectangle
,
AxesImage
, respectivement). Ces méthodes d'assistance prendront vos données (par exemple, numpy
des tableaux et des chaînes) et créeront des Artist
instances primitives selon les besoins (par exemple, Line2D
), les ajouteront aux conteneurs appropriés et les dessineront à la demande. La plupart d'entre vous connaissent probablement le Subplot
, qui n'est qu'un cas particulier d'un Axes
qui vit sur une grille régulière de lignes par colonnes deSubplot
instances. Si vous souhaitez créer un Axes
à un emplacement arbitraire, utilisez simplement la
add_axes()
méthode qui prend une liste de valeurs en coordonnées relatives 0-1 :[left, bottom, width, height]
fig2 = plt.figure()
ax2 = fig2.add_axes([0.15, 0.1, 0.7, 0.3])
Continuons avec notre exemple :
Dans cet exemple, ax
est l' Axes
instance créée par l'
fig.add_subplot
appel ci-dessus (rappelez -vous Subplot
qu'il s'agit simplement d'une sous-classe de
Axes
) et lorsque vous appelez ax.plot
, il crée une Line2D
instance et l'ajoute au Axes
.
Dans la session IPython interactive ci-dessous, vous pouvez voir que la Axes.lines
liste est de longueur un et contient la même ligne que celle renvoyée par l' appel :line, = ax.plot...
In [101]: ax.lines[0]
Out[101]: <matplotlib.lines.Line2D at 0x19a95710>
In [102]: line
Out[102]: <matplotlib.lines.Line2D at 0x19a95710>
Si vous effectuez des appels ultérieurs vers ax.plot
(et que l'état d'attente est "activé", ce qui est la valeur par défaut), des lignes supplémentaires seront ajoutées à la liste. Vous pouvez supprimer une ligne ultérieurement en appelant sa remove
méthode :
Les axes ont également des méthodes d'assistance pour configurer et décorer les graduations des axes x et y, les étiquettes de graduation et les étiquettes d'axe :
xtext = ax.set_xlabel('my xdata') # returns a Text instance
ytext = ax.set_ylabel('my ydata')
Lorsque vous appelez ax.set_xlabel
, il transmet les informations sur l' Text
instance de XAxis
. Chaque Axes
instance contient une XAxis
et une
YAxis
instance, qui gèrent la disposition et le dessin des graduations, des étiquettes de graduation et des étiquettes d'axe.
Essayez de créer la figure ci-dessous.
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
fig.subplots_adjust(top=0.8)
ax1 = fig.add_subplot(211)
ax1.set_ylabel('volts')
ax1.set_title('a sine wave')
t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2*np.pi*t)
line, = ax1.plot(t, s, color='blue', lw=2)
# Fixing random state for reproducibility
np.random.seed(19680801)
ax2 = fig.add_axes([0.15, 0.1, 0.7, 0.3])
n, bins, patches = ax2.hist(np.random.randn(1000), 50,
facecolor='yellow', edgecolor='yellow')
ax2.set_xlabel('time (s)')
plt.show()
Personnaliser vos objets #
Chaque élément de la figure est représenté par un Matplotlib
Artist
, et chacun a une longue liste de propriétés pour configurer son apparence. La figure elle-même contient
Rectangle
exactement la taille de la figure, que vous pouvez utiliser pour définir la couleur d'arrière-plan et la transparence des figures. De même, chaque Axes
boîte englobante (la boîte blanche standard avec des bords noirs dans le tracé Matplotlib typique, a une Rectangle
instance qui détermine la couleur, la transparence et d'autres propriétés des Axes. Ces instances sont stockées en tant que variables membres Figure.patch
et Axes.patch
("Patch" est un nom hérité de MATLAB, et est un "patch" 2D de couleur sur la figure, par exemple, des rectangles, des cercles et des polygones). Chaque Matplotlib Artist
a les propriétés suivantes
Propriété |
La description |
---|---|
alpha |
La transparence - un scalaire de 0-1 |
Animé |
Un booléen utilisé pour faciliter le dessin animé |
axes |
Les haches dans lesquelles vit l'artiste, peut-être aucune |
clip_box |
La boîte englobante qui coupe l'artiste |
clip_on |
Si le découpage est activé |
clip_path |
Le chemin auquel l'artiste est attaché |
contient |
Une fonction de picking pour tester si l'artiste contient le point de picking |
chiffre |
L'instance de la figure dans laquelle vit l'artiste, peut-être Aucune |
étiquette |
Une étiquette de texte (par exemple, pour l'étiquetage automatique) |
cueilleur |
Un objet python qui contrôle la sélection d'objets |
transformer |
La transformation |
visible |
Un booléen indiquant si l'artiste doit être dessiné |
zorder |
Un nombre qui détermine l'ordre de dessin |
tramé |
Booléen ; Transforme les vecteurs en graphiques raster (pour la compression et la transparence EPS) |
Chacune des propriétés est accessible avec un setter ou un getter à l'ancienne (oui, nous savons que cela irrite les Pythonistas et nous prévoyons de prendre en charge l'accès direct via des propriétés ou des traits, mais cela n'a pas encore été fait). Par exemple, pour multiplier l'alpha actuel par la moitié :
a = o.get_alpha()
o.set_alpha(0.5*a)
Si vous souhaitez définir plusieurs propriétés à la fois, vous pouvez également utiliser la set
méthode avec des arguments de mots clés. Par exemple:
o.set(alpha=0.5, zorder=2)
Si vous travaillez de manière interactive sur le shell python, un moyen pratique d'inspecter les Artist
propriétés consiste à utiliser la
matplotlib.artist.getp()
fonction (simplement
getp()
dans pyplot), qui répertorie les propriétés et leurs valeurs. Cela fonctionne également pour les classes dérivées de Artist
, par exemple, Figure
et Rectangle
. Voici les Figure
propriétés du rectangle mentionnées ci-dessus :
In [149]: matplotlib.artist.getp(fig.patch)
agg_filter = None
alpha = None
animated = False
antialiased or aa = False
bbox = Bbox(x0=0.0, y0=0.0, x1=1.0, y1=1.0)
capstyle = butt
children = []
clip_box = None
clip_on = True
clip_path = None
contains = None
data_transform = BboxTransformTo( TransformedBbox( Bbox...
edgecolor or ec = (1.0, 1.0, 1.0, 1.0)
extents = Bbox(x0=0.0, y0=0.0, x1=640.0, y1=480.0)
facecolor or fc = (1.0, 1.0, 1.0, 1.0)
figure = Figure(640x480)
fill = True
gid = None
hatch = None
height = 1
in_layout = False
joinstyle = miter
label =
linestyle or ls = solid
linewidth or lw = 0.0
patch_transform = CompositeGenericTransform( BboxTransformTo( ...
path = Path(array([[0., 0.], [1., 0.], [1.,...
path_effects = []
picker = None
rasterized = None
sketch_params = None
snap = None
transform = CompositeGenericTransform( CompositeGenericTra...
transformed_clip_path_and_affine = (None, None)
url = None
verts = [[ 0. 0.] [640. 0.] [640. 480.] [ 0. 480....
visible = True
width = 1
window_extent = Bbox(x0=0.0, y0=0.0, x1=640.0, y1=480.0)
x = 0
xy = (0, 0)
y = 0
zorder = 1
Les docstrings de toutes les classes contiennent également les Artist
propriétés, vous pouvez donc consulter "l'aide" interactive ou le
matplotlib.artist pour une liste des propriétés d'un objet donné.
Conteneurs d'objets #
Maintenant que nous savons comment inspecter et définir les propriétés d'un objet donné que nous voulons configurer, nous devons savoir comment accéder à cet objet. Comme mentionné dans l'introduction, il existe deux types d'objets : les primitives et les conteneurs. Les primitives sont généralement les éléments que vous souhaitez configurer (la police d'une Text
instance, la largeur d'un Line2D
) bien que les conteneurs aient également certaines propriétés - par exemple, le
est un conteneur qui contient de nombreuses primitives dans votre tracé, mais il a également des propriétés telles que pour contrôler si l'axe des abscisses est 'linéaire' ou 'log'. Dans cette section, nous verrons où les différents objets conteneurs stockent les objets auxquels vous souhaitez accéder.Axes
Artist
xscale
Artists
Conteneur de figurines #
Le conteneur de niveau supérieur Artist
est le
matplotlib.figure.Figure
, et il contient tout dans la figure. L'arrière-plan de la figure est un
Rectangle
qui est stocké dans
Figure.patch
. Au fur et à mesure que vous ajoutez des sous-parcelles ( add_subplot()
) et des axes ( add_axes()
) à la figure, ceux-ci seront ajoutés au fichier Figure.axes
. Ceux-ci sont également renvoyés par les méthodes qui les créent :
In [156]: fig = plt.figure()
In [157]: ax1 = fig.add_subplot(211)
In [158]: ax2 = fig.add_axes([0.1, 0.1, 0.7, 0.3])
In [159]: ax1
Out[159]: <AxesSubplot:>
In [160]: print(fig.axes)
[<AxesSubplot:>, <matplotlib.axes._axes.Axes object at 0x7f0768702be0>]
Étant donné que la figure conserve le concept des "axes actuels" (voir
Figure.gca
et
Figure.sca
) pour prendre en charge la machine d'état pylab/pyplot, vous ne devez pas insérer ou supprimer des axes directement de la liste des axes, mais plutôt utiliser les
méthodes add_subplot()
et
add_axes()
pour insérer, et la
Axes.remove
méthode supprimer. Vous êtes cependant libre de parcourir la liste des Axes ou de l'indexer pour accéder aux Axes
instances que vous souhaitez personnaliser. Voici un exemple qui active toutes les grilles Axes :
for ax in fig.axes:
ax.grid(True)
La figure possède également ses propres attributs images
, et lines
,
que vous pouvez utiliser pour ajouter directement des primitives. Ce faisant, le système de coordonnées par défaut pour le sera simplement en pixels (ce qui n'est généralement pas ce que vous voulez). Si vous utilisez plutôt des méthodes au niveau de la figure pour ajouter des artistes (par exemple, en utilisant pour ajouter du texte), le système de coordonnées par défaut sera "coordonnées de la figure" où (0, 0) est le coin inférieur gauche de la figure et (1, 1 ) est le coin supérieur droit de la figure.patches
text
Figure
Figure.text
Comme avec tous les Artist
s, vous pouvez contrôler ce système de coordonnées en définissant la propriété transform. Vous pouvez utiliser explicitement les "coordonnées de la figure" en définissant la Artist
transformation surfig.transFigure
:
import matplotlib.lines as lines
fig = plt.figure()
l1 = lines.Line2D([0, 1], [0, 1], transform=fig.transFigure, figure=fig)
l2 = lines.Line2D([0, 1], [1, 0], transform=fig.transFigure, figure=fig)
fig.lines.extend([l1, l2])
plt.show()
Voici un résumé des artistes que contient la figure
Attribut de la figure |
La description |
---|---|
axes |
Une liste d' |
correctif |
Le |
images |
Une liste de |
légendes |
|
lignes |
Une liste d'instances de Figure |
correctifs |
Une liste de figures |
les textes |
Une liste Figure |
Conteneur haches #
Le matplotlib.axes.Axes
est le centre de l'univers Matplotlib - il contient la grande majorité de tous les Artists
éléments utilisés dans une figure avec de nombreuses méthodes d'assistance pour les créer et les ajouter
Artists
à lui-même, ainsi que des méthodes d'assistance pour accéder et personnaliser ce Artists
qu'il contient. Comme le
Figure
, il contient a
qui est a
pour les coordonnées cartésiennes et a
pour les coordonnées polaires ; ce patch détermine la forme, l'arrière-plan et la bordure de la zone de traçage :Patch
patch
Rectangle
Circle
ax = fig.add_subplot()
rect = ax.patch # a Rectangle instance
rect.set_facecolor('green')
Lorsque vous appelez une méthode de traçage, par exemple, le canonique
plot
et que vous transmettez des tableaux ou des listes de valeurs, la méthode crée une matplotlib.lines.Line2D
instance, met à jour la ligne avec toutes les Line2D
propriétés passées en tant qu'arguments de mots-clés, ajoute la ligne au Axes
, et vous la renvoie :
In [213]: x, y = np.random.rand(2, 100)
In [214]: line, = ax.plot(x, y, '-', color='blue', linewidth=2)
plot
renvoie une liste de lignes car vous pouvez transmettre plusieurs paires x, y au tracé, et nous décompressons le premier élément de la liste de longueur un dans la variable de ligne. La ligne a été ajoutée à la
Axes.lines
liste :
In [229]: print(ax.lines)
[<matplotlib.lines.Line2D at 0xd378b0c>]
De même, les méthodes qui créent des correctifs, comme
bar()
crée une liste de rectangles, ajouteront les correctifs à la Axes.patches
liste :
In [233]: n, bins, rectangles = ax.hist(np.random.randn(1000), 50)
In [234]: rectangles
Out[234]: <BarContainer object of 50 artists>
In [235]: print(len(ax.patches))
Out[235]: 50
Vous ne devez pas ajouter d'objets directement aux
listes Axes.lines
ou , car le doit effectuer certaines opérations lorsqu'il crée et ajoute un objet :Axes.patches
Axes
Il définit la propriété
figure
et du ;axes
Artist
Axes
Il définit la transformation par défaut (sauf si une est déjà définie) ;Il inspecte les données contenues dans
Artist
pour mettre à jour les structures de données contrôlant la mise à l'échelle automatique, afin que les limites de la vue puissent être ajustées pour contenir les données tracées.
Vous pouvez néanmoins créer vous-même des objets et les ajouter directement à l'
Axes
aide de méthodes d'assistance telles que add_line
et
add_patch
. Voici une session interactive annotée illustrant ce qui se passe :
In [262]: fig, ax = plt.subplots()
# create a rectangle instance
In [263]: rect = matplotlib.patches.Rectangle((1, 1), width=5, height=12)
# by default the axes instance is None
In [264]: print(rect.axes)
None
# and the transformation instance is set to the "identity transform"
In [265]: print(rect.get_data_transform())
IdentityTransform()
# now we add the Rectangle to the Axes
In [266]: ax.add_patch(rect)
# and notice that the ax.add_patch method has set the axes
# instance
In [267]: print(rect.axes)
Axes(0.125,0.1;0.775x0.8)
# and the transformation has been set too
In [268]: print(rect.get_data_transform())
CompositeGenericTransform(
TransformWrapper(
BlendedAffine2D(
IdentityTransform(),
IdentityTransform())),
CompositeGenericTransform(
BboxTransformFrom(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=1.0, y1=1.0),
TransformWrapper(
BlendedAffine2D(
IdentityTransform(),
IdentityTransform())))),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100. 0. 0.]
[ 0. 100. 0.]
[ 0. 0. 1.]])))))))
# the default axes transformation is ax.transData
In [269]: print(ax.transData)
CompositeGenericTransform(
TransformWrapper(
BlendedAffine2D(
IdentityTransform(),
IdentityTransform())),
CompositeGenericTransform(
BboxTransformFrom(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=1.0, y1=1.0),
TransformWrapper(
BlendedAffine2D(
IdentityTransform(),
IdentityTransform())))),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100. 0. 0.]
[ 0. 100. 0.]
[ 0. 0. 1.]])))))))
# notice that the xlimits of the Axes have not been changed
In [270]: print(ax.get_xlim())
(0.0, 1.0)
# but the data limits have been updated to encompass the rectangle
In [271]: print(ax.dataLim.bounds)
(1.0, 1.0, 5.0, 12.0)
# we can manually invoke the auto-scaling machinery
In [272]: ax.autoscale_view()
# and now the xlim are updated to encompass the rectangle, plus margins
In [273]: print(ax.get_xlim())
(0.75, 6.25)
# we have to manually force a figure draw
In [274]: fig.canvas.draw()
Il existe de très nombreuses Axes
méthodes d'assistance pour créer des primitives
Artists
et les ajouter à leurs conteneurs respectifs. Le tableau ci-dessous en résume un petit échantillon, les types Artist
qu'ils créent et où ils les stockent
Méthode d'aide aux axes |
Artiste |
Récipient |
---|---|---|
|
ax.texts |
|
|
ax.patches |
|
|
ax.lines et ax.patches |
|
|
ax.patches |
|
|
ax.patches |
|
|
ax.images |
|
|
ax.get_legend() |
|
|
ax.lines |
|
|
ax.collections |
|
|
ax.texts |
En plus de tout cela Artists
, le Axes
contient deux Artist
conteneurs importants : le XAxis
et YAxis
, qui gèrent le dessin des coches et des étiquettes. Celles-ci sont stockées sous forme de variables d'instance
xaxis
et
yaxis
. Les conteneurs XAxis
et YAxis
seront détaillés ci-dessous, mais notez que le Axes
contient de nombreuses méthodes d'assistance qui transfèrent les appels aux
Axis
instances, de sorte que vous n'avez souvent pas besoin de travailler directement avec elles, sauf si vous le souhaitez. Par exemple, vous pouvez définir la couleur de police des XAxis
ticklabels à l' Axes
aide de la méthode d'assistance :
ax.tick_params(axis='x', labelcolor='orange')
Vous trouverez ci-dessous un résumé des artistes que Axes
contient le
Attribut des axes |
La description |
---|---|
artistes |
Une |
correctif |
|
collections |
Une |
images |
Un |
lignes |
Une |
correctifs |
Une |
les textes |
Une |
axe des abscisses |
Un |
yaxis |
Un |
La légende est accessible par get_legend
,
Conteneurs d'axe #
Les matplotlib.axis.Axis
instances gèrent le dessin des lignes de graduation, des lignes de grille, des étiquettes de graduation et de l'étiquette d'axe. Vous pouvez configurer les graduations gauche et droite séparément pour l'axe y, et les graduations supérieure et inférieure séparément pour l'axe x. Le Axis
stocke également les données et les intervalles d'affichage utilisés dans la mise à l'échelle automatique, le panoramique et le zoom, ainsi que les instances Locator
et
Formatter
qui contrôlent l'emplacement des graduations et la manière dont elles sont représentées sous forme de chaînes.
Chaque Axis
objet contient un label
attribut (c'est ce qui se pyplot
modifie dans les appels à xlabel
et
ylabel
) ainsi qu'une liste de ticks majeurs et mineurs. Les ticks sont
axis.XTick
et les axis.YTick
instances, qui contiennent les primitives de ligne et de texte réelles qui rendent les ticks et les ticklabels. Étant donné que les graduations sont créées dynamiquement selon les besoins (par exemple, lors d'un panoramique et d'un zoom), vous devez accéder aux listes de graduations majeures et mineures via leurs méthodes d'accès
axis.Axis.get_major_ticks
et axis.Axis.get_minor_ticks
. Bien que les ticks contiennent toutes les primitives et seront couverts ci-dessous, Axis
les instances ont des méthodes d'accès qui renvoient les lignes de tick, les étiquettes de tick, les emplacements de tick, etc. :
fig, ax = plt.subplots()
axis = ax.xaxis
axis.get_ticklocs()
array([0. , 0.2, 0.4, 0.6, 0.8, 1. ])
[Text(0.0, 0, '0.0'), Text(0.2, 0, '0.2'), Text(0.4, 0, '0.4'), Text(0.6000000000000001, 0, '0.6'), Text(0.8, 0, '0.8'), Text(1.0, 0, '1.0')]
notez qu'il y a deux fois plus de graduations que d'étiquettes car, par défaut, il y a des lignes de graduation en haut et en bas mais seulement des étiquettes de graduation sous l'axe des x ; cependant, cela peut être personnalisé.
<a list of 12 Line2D ticklines objects>
Et avec les méthodes ci-dessus, vous ne récupérez que les listes de ticks majeurs par défaut, mais vous pouvez également demander les ticks mineurs :
axis.get_ticklabels(minor=True)
axis.get_ticklines(minor=True)
<a list of 0 Line2D ticklines objects>
Voici un résumé de certaines des méthodes d'accès utiles de Axis
(celles-ci ont des setters correspondants lorsque cela est utile, comme
set_major_formatter()
.)
Méthode d'accès à l'axe |
La description |
---|---|
L'échelle de l'axe, par exemple, "log" ou "linéaire" |
|
L'instance d'intervalle des limites de la vue Axis |
|
L'instance d'intervalle des limites de données Axis |
|
Une liste de lignes de grille pour l'Axe |
|
L'étiquette Axis - une |
|
Le texte de décalage de l'axe - une |
|
Une liste d' |
|
Une liste d' |
|
Une liste des emplacements des ticks - mot-clé minor=True|False |
|
L' |
|
L' |
|
L' |
|
L' |
|
Une liste d' |
|
Une liste d' |
|
Activer ou désactiver la grille pour les graduations majeures ou mineures |
Voici un exemple, déconseillé pour sa beauté, qui personnalise les propriétés Axes et Tick.
# plt.figure creates a matplotlib.figure.Figure instance
fig = plt.figure()
rect = fig.patch # a rectangle instance
rect.set_facecolor('lightgoldenrodyellow')
ax1 = fig.add_axes([0.1, 0.3, 0.4, 0.4])
rect = ax1.patch
rect.set_facecolor('lightslategray')
for label in ax1.xaxis.get_ticklabels():
# label is a Text instance
label.set_color('red')
label.set_rotation(45)
label.set_fontsize(16)
for line in ax1.yaxis.get_ticklines():
# line is a Line2D instance
line.set_color('green')
line.set_markersize(25)
line.set_markeredgewidth(3)
plt.show()
Cochez les conteneurs #
Le matplotlib.axis.Tick
est le dernier objet conteneur dans notre descente du Figure
au au
Axes
au Axis
au Tick
. Le Tick
contient les occurrences de graduation et de ligne de grille, ainsi que les occurrences d'étiquette pour les graduations supérieures et inférieures. Chacun d'entre eux est accessible directement en tant qu'attribut du fichier Tick
.
Attribut de tique |
La description |
---|---|
tick1line |
Un |
tick2line |
Un |
ligne de la grille |
Un |
étiquette1 |
Un |
étiquette2 |
Un |
Voici un exemple qui définit le formateur pour les ticks du côté droit avec des signes dollar et les colore en vert sur le côté droit de l'axe y.
import numpy as np
import matplotlib.pyplot as plt
# Fixing random state for reproducibility
np.random.seed(19680801)
fig, ax = plt.subplots()
ax.plot(100*np.random.rand(20))
# Use automatic StrMethodFormatter
ax.yaxis.set_major_formatter('${x:1.2f}')
ax.yaxis.set_tick_params(which='major', labelcolor='green',
labelleft=False, labelright=True)
plt.show()
Durée totale d'exécution du script : (0 minutes 1,067 secondes)