2017-12-31 134 views
0

Sorry, wenn meine Frage klingt s ..., ich bin neu in Matplotlib. Ich habe eine einfache Daten-Set in Pandas Datenrahmen, sieht wie folgt aus:3D-Plot ein einfacher Datensatz mit Matplotlib

 TAG_1  TAG_2  testTime 
0   5  10, 10   758.2 
1   5  16, 4  1738.1 
2   5  4, 3   752.2 
3   5  5, 3   868.9 
4   5  5, 4   742.3 

Gibt es eine Möglichkeit, ich kann 3D-Plot eine solche Daten mit matplotlib? TAG_1 und TAG_2 sind nur einfache Tags, ihre Werte sind überhaupt nicht wichtig. Also würde ich praktisch nur die Indexspalte 2-mal als X-Achse und die Y-Achse und die testTime-Spalte als Z-Achse verwenden. Könnten Sie mir einen Beispielcode zur Verfügung stellen? Vielen Dank im Voraus.

Dies ist die Art der Handlung, die ich suche. Sample chart

EDIT: Ich habe es geschafft, die folgenden mit @furas Antwort auf Grundstück: enter image description here

Antwort

1

Mit diesem Code

data = [ [758.2], [1738.1], [752.2], [868.9], [742.3] ] 

import pandas as pd 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 

df = pd.DataFrame(data) 

threedee = plt.figure().gca(projection='3d') 
threedee.plot(df.index, df.index, df[0]) 

plt.show() 

ich

enter image description here

Es verwendet Index als X und Y und Spalte als Z, aber ich weiß nicht, ob es das ist, was Sie erwartet haben.


Sie benötigen mehr Daten, um etwas mehr zu zeichnen.

füge ich mehr Spalten

data = [ 
    [0, 1, 100, 758.2], 
    [0, 1, 100, 1738.1], 
    [0, 1, 100, 752.2], 
    [0, 1, 100, 868.9], 
    [0, 1, 100, 742.3], 
] 

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

df = pd.DataFrame(data) 

Y = range(df.shape[0]) 
X = range(df.shape[1]) 
X, Y = np.meshgrid(X, Y) 

threedee = plt.figure().gca(projection='3d') 
threedee.plot_wireframe(Y, X, df) 

plt.show() 

und ich

enter image description here

Wenn ich ersetzen X mit Y dann bekomme ich

enter image description here

ersten Um ve rsion können Sie X mit Y ersetzen oder zu transformieren Dataframe

df = df.T 
+0

Wel vielen Dank für das Feedback, es funktioniert, aber was ich brauche, ist etwas ähnlich dem Bild, das ich als Probe geschrieben, ist es sogar möglich zu haben, ein solches Diagramm mit Matplotlib? – DeFoG

+0

würden Sie mehr Spalten mit Daten benötigen - mit einer Spalte können Sie nur eine Zeile zeichnen. – furas

+0

aber Indexwerte sind Daten, nicht wahr? Stellen Sie sich vor, meine Daten für die x-Achse sind tatsächlich 1,2,3,4,5 ... und das Gleiche gilt für die y-Achse. Also ich habe jetzt 3 Spalten, was dann? – DeFoG