Wykres konturowy w Pythonie importującym plik tabeli txt
Próbuję stworzyć fabułę konturową, taką jak:
Używanie tabeli danych, takiej jak 3 kolumny w pliku txt, z dużą liczbą wierszy.
Używając tego kodu:
import numpy as np
import matplotlib.pyplot as plt
import scipy.interpolate
data = np.loadtxt(r'dataa.txt')
a = [data[:,0]]
b = [data[:,1]]
n = [data[:,2]]
x = np.asarray(a)
y = np.asarray(b)
z = np.asarray(n)
print "x = ", x
print "y = ", y
print "z = ", z
fig=plt.figure()
CF = contour(x,y,z,colors = 'k')
plt.xlabel("X")
plt.ylabel("Y")
plt.colorbar()
plt.show()
Nie wiem dlaczego, to nie działa. Python daje mi właściwe osie dla wartości, które oczekuję, ale na wykresie jest tylko pusty i wiem, że importuje dane we właściwy sposób, ponieważ pokazuje mi moje wartości przed fabułą.
Przykład tabeli: (różnica jest taka, że moja tabela ma 90000 linii)
Używając tego kodu:
import numpy as np
import matplotlib.pyplot as plt
import scipy.interpolate
N = 1000 #number of points for plotting/interpolation
x, y, z = np.genfromtxt(r'dataa.txt', unpack=True)
xi = np.linspace(x.min(), x.max(), N)
yi = np.linspace(y.min(), y.max(), N)
zi = scipy.interpolate.griddata((x, y), z, (xi[None,:], yi[:,None]), method='cubic')
fig = plt.figure()
plt.contour(xi, yi, zi)
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Mam ten wynik: Myślę, że mam błędne rady.