2016-09-08 1 views
0

J'ai code comme:Modifier la taille de la police des étiquettes matplot3D

fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
ax.scatter(xs, ys, zs, c='r', marker='o',label='A') 
ax.scatter(x, y, z, c='b', marker='^',label='B') 

ax.set_xlabel('X') 
ax.set_ylabel('Y') 
ax.set_zlabel('Z') 

ax.tick_params(axis='both', which='major', labelsize=6) 
ax.tick_params(axis='both', which='minor', labelsize=6) 

plt.savefig(outfile) 

Le tickparams qui fonctionne dans la version 2D ne fonctionne pas.

Comment faire? La documentation est très difficile à lire à ce sujet. Notez qu'il s'agit de la taille de la police des titres des axes, pas des étiquettes de graduation.

+0

Puisque vous parlez de la taille de la police dans le titre de votre question: qui fonctionne parfaitement bien pour moi en utilisant exactement votre exemple avec ' ax.tick_params'. Les autres paramètres (mineur/majeur) ne semblent en effet pas fonctionner – Bart

+0

L'utilisation de la taille de l'étiquette ne modifie pas les paramètres dans un tracé 3D. –

+0

Peut-être que je ne vous comprends pas correctement, mais sur mon système (Linux, matplotlib 1.5.1, les deux avec Python 3.5.1 et 2.7.11) changer 'labelsize' change la taille de la police des étiquettes de graduation. – Bart

Répondre

0

Le code de la question fonctionne correctement.

ax.tick_params(..., labelsize=6) 

peut être utilisé pour modifier la taille de police des étiquettes.

L'exemple complet

import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 

x,y,z = zip(*np.random.rand(10,3)) 

fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 

ax.scatter(x, y, z, c='b', marker='^',label='B') 

ax.set_xlabel('X') 
ax.set_ylabel('Y') 
ax.set_zlabel('Z') 

ax.tick_params(axis='both', which='major', labelsize=6) 
ax.tick_params(axis='both', which='minor', labelsize=6) 

plt.show() 

produit cette parcelle:

enter image description here