안녕하세요 python 커뮤니티. 저는 종종 자기 일의 일부로 자기 데이터를 수집하지만, 데이터를 처리하기 위해 현장에서 돌아올 때까지 기다려야 만합니다. 이 데이터는이 형식으로 제공 : -CSV 파일의 데이터를 사용하도록 등고선 그리기 받기
시간, F, Ef는, FP, Y 좌표, X 좌표, 높이 21 : 51 : 02,53169.31, -14.3, -17.79,386330.362,7371876.155,540.939
이를 txt, xls 또는이 경우 csv와 같은 다른 형식으로 출력 할 수 있습니다. 내 목표는 랩톱에서 신속하게 계획하고 데이터에 오염이 없는지 확인하는 것입니다. Google을 사용하여 stackoverflow를 이끌고 다양한 글을보고 나는 아래 스크립트를 생각해 냈습니다. 이 게시물들에 대해 모두에게 감사드립니다. 내 문제는 내가 csv 파일을 읽을 수 있지만 어떻게 그 데이터를 음모 부분으로 가져 와서 27 번째 줄에서 원하지 않는 숫자를 제거하는지 이해할 수 없다는 것입니다. 나는 당신이 그것을 다소 간단하게 찾을 것이라고 확신하지만 경험이 부족하여 지난 2 주 동안 서클에서 돌아 다니고 있습니다. 답장을 보내 주신 모든 분들께 감사드립니다.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as ml
f = open("filename.csv")
data = np.genfromtxt('filename.csv', dtype=[('Time',float),('F',float),('Ef',float),
('FP',float),('E',float),('N',float),('H',float)],
comments='"', delimiter=',')
#only here so that I can see the file is being
#read so will probably remove it later
for line in f:
print line
#below is copied from elsewhere in stackoverflow and trying to adapt
#to my needs so at the moment I get this a Duplicate Point Warning.
#So I need to call the above into what is below.
ndata = 100
ny, nx = 100, 200
xmin, xmax = 1, 50
ymin, ymax = 1, 50
x = np.random.randint(xmin, xmax, ndata)
y = np.random.randint(ymin, ymax, ndata)
z = np.random.random(ndata)
xi = np.linspace(xmin, xmax, nx) #
yi = np.linspace(ymin, ymax, ny) #
zi = ml.griddata(x, y, z, xi, yi) #
plt.contour(xi, yi, zi, 15, linewidths = 0.5, colors = 'k')
plt.pcolormesh(xi, yi, zi, cmap = plt.get_cmap('rainbow'))
plt.colorbar()
plt.scatter(x, y, marker = 'o', c = 'b', s = 5, zorder = 10)
plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
plt.show()
마이크 감사합니다. 시도해보고 내가 어떻게하는지 봅니다. – user2349107
죄송합니다.아마도 데이터 모양이 완전히 틀렸을 것입니다. 잠시 시정합니다. – Mike
@Mike 귀하의 설명은 정말 좋았고 나를 도와 줬어! 한가지, x와 y의 고유 한 값을 추출하면 왜 meshgrid를 수행하지 않습니까? 아니면 plt.contour가 처리합니까? – ashishv