Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 객체인식
- 데이터셋
- GUI
- 컴퓨터비전
- MSE
- 파이썬프레임워크
- 배치
- 그래프
- 컴공
- 프레임워크
- tensor
- 손실함수
- Batch
- 파이썬
- 딥러닝
- PySide6
- dl
- numpy
- TXT
- channel
- 파일 열기
- 라벨
- propagation
- pytorch
- Plot
- loss function
- 머신러닝
- perceptron
- matplotlib
- 대학생
Archives
- Today
- Total
Welcome to Jiyuniverse
[PySide6] numpy로 .txt 파일 불러와 matplotlib로 그래프 시각화하기 본문
2024-01-05에 작성된 글입니다. (블로그 이전)
csv 모듈을 이용해서 파일을 불러와도 되지만 더 간단하게 numpy를 사용하여 .txt 파일을 불러왔다.
1. 저번 글에서 파일 불러오기를 하여 얻은 파일 경로를 InputToPlot에 전달해 준다.
def slot_fileopen(self):
fpath = QFileDialog.getOpenFileName(self, 'Open file', './')
self.filename.setText(fpath[0])
self.InputToPlot(fpath[0])
2. numpy의 loadtxt를 이용하여 .txt 파일을 가져온다.
def InputToPlot(self, f_name):
data = np.loadtxt(f_name, skiprows=1, delimiter='\t', dtype=np.float32, usecols=(1,2))
f_name은 파일 경로
skiprows는 1번째 행을 skip한다는 뜻 (0부터 시작하지 않고 1부터 시작한다고 한다.)
delimiter(구분자)는 \t 를 기준으로 구분한다는 뜻
dtype은 숫자들을 총 32bit를 이용한 float로 바꾼다는 뜻
usecols는 1번째 열부터 2번째 열까지만 사용한다는 뜻이다.
(위에 보여드린 .txt 파일에서는 결국 Time, Temperature만 사용하겠다는 뜻이죠!)
data_times = data[:, 0] #행, 열
data_temperature = data[:, 1]
data_times에 data[:, 0] 즉 1번째 열(Time)을 저장했다.(usecols 때문에 1열부터 시작해서 index = 0이다.)
data times : [8.000000e+00 5.600000e+01 1.050000e+02 ... 4.194805e+06 4.194855e+06
4.194905e+06]
data temperature : [29.1 29.1 29.1 ... 57. 57. 57. ]
이렇게 ndarray 타입으로 저장된다.
전체 코드
def slot_fileopen(self):
fpath = QFileDialog.getOpenFileName(self, 'Open file', './')
self.filename.setText(fpath[0])
self.InputToPlot(fpath[0])
def InputToPlot(self, f_name):
data = np.loadtxt(f_name, skiprows=1, delimiter='\t', dtype=np.float32, usecols=(1,2))
data_times = data[:, 0] #행, 열
data_temperature = data[:, 1]
print(f'data times : {data_times}') #milli sec
print(f'data temperature : {data_temperature}')
plt.plot(data_times, data_temperature)
plt.xlabel('Time(msec)')
plt.ylabel('Temperature(°C)')
plt.grid(True)
plt.show()
ui에서 파일을 불러오면 그래프가 나타난다.
'Python > PyQt' 카테고리의 다른 글
| [PyQt5] 실시간 데이터 그래프 시각화 코드 수정 (0) | 2025.01.22 |
|---|---|
| [Pyside6] 파일 열기 버튼, 파일 경로 나타내기 구현 (1) | 2025.01.22 |