web-dev-qa-db-fra.com

Définir zlim dans matplotlib scatter3d

J'ai trois listes xs, ys, zs de points de données dans Python et j'essaie de créer un tracé 3D avec matplotlib en utilisant la méthode scatter3d.

import matplotlib.pyplot as plt

fig = plt.figure()  
ax = fig.add_subplot(111, projection='3d')  
plt.xlim(290)  
plt.ylim(301)  
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.scatter(xs, ys, zs)  
plt.savefig('dateiname.png')
plt.close()

Les fonctions plt.xlim() et plt.ylim() fonctionnent bien, mais je ne trouve pas de fonction pour définir les bordures dans la direction z. Comment faire?

13
Jann

Utilisez simplement le set_zlim fonction de l'objet axes (comme vous l'avez déjà fait avec set_zlabel, qui n'est pas non plus disponible en tant que plt.zlabel):

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

xs = np.random.random(10)
ys = np.random.random(10)
zs = np.random.random(10)

fig = plt.figure()  
ax = fig.add_subplot(111, projection='3d')  
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.scatter(xs, ys, zs)  
ax.set_zlim(-10,10)
15
Bart