J'essaie de tracer une figure sans coche ni numéro sur l'un ou l'autre des axes (j'utilise des axes au sens traditionnel, pas la nomenclature matplotlib!). Un problème que j'ai rencontré est celui où matplotlib ajuste les graduations x (y) en soustrayant une valeur N, puis ajoute N à la fin de l'axe.
Cela peut être vague, mais l'exemple simplifié suivant met en évidence le problème, avec «6,18» étant la valeur incriminée de N:
import matplotlib.pyplot as plt
import random
prefix = 6.18
rx = [prefix+(0.001*random.random()) for i in arange(100)]
ry = [prefix+(0.001*random.random()) for i in arange(100)]
plt.plot(rx,ry,'ko')
frame1 = plt.gca()
for xlabel_i in frame1.axes.get_xticklabels():
xlabel_i.set_visible(False)
xlabel_i.set_fontsize(0.0)
for xlabel_i in frame1.axes.get_yticklabels():
xlabel_i.set_fontsize(0.0)
xlabel_i.set_visible(False)
for tick in frame1.axes.get_xticklines():
tick.set_visible(False)
for tick in frame1.axes.get_yticklines():
tick.set_visible(False)
plt.show()
Les trois choses que j'aimerais savoir sont:
Comment désactiver ce comportement en premier lieu (bien que dans la plupart des cas cela soit utile, ce n'est pas toujours le cas!) J'ai regardé à travers
matplotlib.axis.XAxis
et je ne trouve rien de appropriéComment puis-je faire disparaître N (ie
X.set_visible(False)
)Existe-t-il de toute façon une meilleure façon de procéder? Mon intrigue finale serait des sous-intrigues 4x4 dans une figure, si cela est pertinent.
la source
Réponses:
Au lieu de masquer chaque élément, vous pouvez masquer l'axe entier:
Ou, vous pouvez définir les graduations sur une liste vide:
Dans cette deuxième option, vous pouvez toujours utiliser
plt.xlabel()
etplt.ylabel()
pour ajouter des étiquettes aux axes.la source
'Axes3DSubplot' object has no attribute 'get_zaxis'
get_xaxis().set_visible(False)
. Je pense que matplotlib dans ce cas initialise certains paramètres comme si le tracé était 2D.ax.set_zticks([])
fera ce que vous voulezSi vous souhaitez masquer uniquement le texte de l'axe en conservant les lignes de la grille:
Faire
set_visible(False)
ou masqueraset_ticks([])
également les lignes de la grille.la source
Si vous êtes comme moi et que vous ne récupérez pas toujours les axes
ax
, lorsque vous tracez la figure, alors une solution simple serait de fairela source
Un peu d'un ancien thread mais, cela semble être une méthode plus rapide utilisant la dernière version de matplotlib:
définir le formateur principal pour l'axe des x
la source
Je n'ai pas été en mesure de rendre une image sans bordures ni données d'axe sur la base des extraits de code ici (même celui accepté dans la réponse). Après avoir fouillé dans la documentation de l'API, j'ai atterri sur ce code pour rendre mon image
J'ai utilisé l'
tick_params
appel pour fermer essentiellement toutes les informations supplémentaires qui pourraient être rendues et j'ai un graphique parfait dans mon fichier de sortie.la source
J'ai codé par couleur cette figure pour faciliter le processus.
Vous pouvez avoir un contrôle total sur la figure à l'aide de ces commandes, pour compléter la réponse, j'ai également ajouté le contrôle sur les splines:
la source
ax.set_xticklabels([])
etax.set_xticks([])
n'a pas fonctionné pour moi, mais l'aax.axes.get_xaxis().set_visible(False)
fait.Lorsque vous utilisez l'API orientée objet, l'
Axes
objet dispose de deux méthodes utiles pour supprimer le texte de l'axe,set_xticklabels()
etset_xticks()
.Supposons que vous créez un tracé en utilisant
Si vous souhaitez simplement supprimer les étiquettes de coche, vous pouvez utiliser
ou pour éliminer complètement les tiques, vous pouvez utiliser
Ces méthodes sont utiles pour spécifier exactement où vous voulez les tiques et comment vous voulez les étiqueter. Passer une liste vide n'entraîne respectivement ni ticks, ni étiquettes.
la source
Une astuce pourrait être de définir la couleur des étiquettes de ticks comme blanc pour le cacher!
la source