J'ai des données qui ressemblent à ceci:
1000 13 75.2
1000 21 79.21
1000 29 80.02
5000 29 87.9
5000 37 88.54
5000 45 88.56
10000 29 90.11
10000 37 90.79
10000 45 90.87
Je souhaite utiliser la première colonne en tant qu'étiquettes d'axe x, la deuxième colonne en tant qu'étiquettes d'axe y et la troisième colonne en tant que valeurs z. Je veux afficher une surface de cette manière. Quelle est la meilleure façon de procéder? J'ai essayé Excel mais je n'ai pas vraiment abouti. Quelqu'un a-t-il des suggestions pour un outil permettant de faire cela? Est-ce que quelqu'un sait comment faire cela dans Excel?
Merci
J'ai fini par utiliser matplotlib :)
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
x = [1000,1000,1000,1000,1000,5000,5000,5000,5000,5000,10000,10000,10000,10000,10000]
y = [13,21,29,37,45,13,21,29,37,45,13,21,29,37,45]
z = [75.2,79.21,80.02,81.2,81.62,84.79,87.38,87.9,88.54,88.56,88.34,89.66,90.11,90.79,90.87]
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.2)
plt.show()
Les résultats étaient doux
Vous ne pouvez vraiment pas afficher 3 colonnes de données en tant que «surface». Si vous n’avez qu’une colonne de données «Z», vous obtiendrez une ligne dans un espace à 3 dimensions et non une surface (ou, dans le cas de vos données, trois lignes distinctes). Pour que Excel puisse utiliser ces données, celles-ci doivent être formatées comme indiqué ci-dessous:
13 21 29 37 45
1000 75.2
1000 79.21
1000 80.02
5000 87.9
5000 88.54
5000 88.56
10000 90.11
10000 90.79
10000 90.87
Ensuite, pour obtenir une surface réelle, vous devez renseigner toutes les cellules manquantes avec les valeurs Z appropriées. Si vous n'en avez pas, vous feriez mieux de l'afficher sous forme de 3 lignes 2D distinctes, car il n'y a pas assez de données pour une surface.
La meilleure représentation 3D qu'Excel vous donnera des données ci-dessus est assez déroutante:
Représenter cet ensemble de données limité sous forme de données 2D peut constituer un meilleur choix:
Pour rappel, ces types de questions s’affichent généralement un peu mieux sur superuser.com .
Vous pouvez utiliser les bibliothèques r pour le traçage 3D.
Les étapes sont les suivantes:
Commencez par créer un cadre de données à l’aide de la commande data.frame ().
Créez un tracé 3D à l'aide de la bibliothèque scatterplot3D.
Ou vous pouvez également faire pivoter votre graphique en utilisant la bibliothèque rgl avec la commande plot3d ().
Alternativement, vous pouvez utiliser la commande plot3d () de la bibliothèque rcmdr.
Dans MATLAB, vous pouvez utiliser les commandes surf (), mesh () ou surfl () selon vos besoins.
[ http://in.mathworks.com/help/matlab/examples/creating-3-d-plots.html]
Vous pouvez également utiliser Gnuplot
qui est également disponible à partir de gretl
. Placez vos données x et z sur un fichier texte et insérez ce qui suit
splot 'test.txt' using 1:2:3 with points palette pointsize 3 pointtype 7
Ensuite, vous pouvez définir des étiquettes, etc. en utilisant
set xlabel "xxx" rotate parallel
set ylabel "yyy" rotate parallel
set zlabel "zzz" rotate parallel
set grid
show grid
unset key