4 votes

Matplotlib : Il n'est pas possible de désactiver les axes et de définir la couleur de la face en même temps ?

Quelqu'un peut-il expliquer pourquoi ce simple code n'exécute pas la commande facecolor alors que l'axe est désactivé ?

fig = plt.figure(1)
ax = fig.add_subplot(211, facecolor=(0,0,0), aspect='equal')
ax.scatter(np.random.random(10000), np.random.random(10000), c="gray", s=0.25)
ax.axes.set_axis_off()

Merci d'avance !

5voto

ImportanceOfBeingErnest Points 119438

Le patch de fond fait partie des axes. Ainsi, si les axes sont désactivés, le patch d'arrière-plan le sera aussi.

Quelques options :

Réintroduire le patch d'arrière-plan

ax = fig.add_subplot(211, facecolor=(0,0,0), aspect='equal')
ax.set_axis_off()
ax.add_artist(ax.patch)
ax.patch.set_zorder(-1)

Créer un nouveau patch

ax = fig.add_subplot(211, facecolor=(0,0,0), aspect='equal')
ax.set_axis_off()
ax.add_patch(plt.Rectangle((0,0), 1, 1, facecolor=(0,0,0),
                           transform=ax.transAxes, zorder=-1))

Rendre invisibles les épines et les tiques de l'axe

...mais garder l'axe sur.

ax = fig.add_subplot(211, facecolor=(0,0,0), aspect='equal')
for spine in ax.spines.values():
    spine.set_visible(False)
ax.tick_params(bottom=False, labelbottom=False,
               left=False, labelleft=False)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X