ich habe zwei fragen:
1. ist es überhaupt möglich, aus solchen daten eine oberfläche zu generieren?
2. ich erhalte für den unten stehenden code folgende fehlermeldung:
File "C:\Python34\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 1620, in plot_surface
avgzsum = sum(p[2] for p in ps2)
TypeError: unsupported operand type(s) for +: 'int' and 'list'
Ich habe mir die axes3d.py angeguckt, aber werde da leider nicht draus schlau.
Code: Alles auswählen
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
from os import path, chdir, listdir
import glob
mypath = path.join('c:','\\','path')
chdir (mypath)
Typ='*.dat'
Dateiinhalt=glob.glob(Typ)
Frliste=[]
Reliste=[]
Run=[]
Runliste=[]
for i in range(len(Dateiinhalt)):
Mo, Re, Fr = np.loadtxt(Dateiinhalt[i],skiprows=1,unpack=True)
Frliste.append(list(Fr))
Reliste.append(list(Re))
Run=[]
j=0
for j in range(len(Fr)): #dies dient dazu, ein array für die z koordinaten zu erstellen
Run.append(i+1)
Runliste.append(list(Run))
fig = plt.figure()
ax = fig.gca(projection='3d')
X = Frliste
Y = Reliste
Z = Runliste
X, Y = np.meshgrid(X, Y)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
ax.set_zlim(0, 40)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()