디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[🔎질문] 버튼 클릭 시 주파수 그래프 나오게 하는 방법

만자몽(106.101) 2022.07.07 22:49:55
조회 188 추천 0 댓글 2
														


안녕하세요. 파이참을 통해서 코딩 중인 학생입니다.

교수님께서 samples.csv 파일을 받았을 때 주파수 그래프가 나오게 할 수 있는 GUI를 만들어 달라고해서 일단은 기초적인 부분은 만들긴 했습니다.

제가 tkinter를 사용해서 파일 받기, 리스트 삭제, 저장 경로 설정하기, 시작, 닫기 GUI를 만들었습니다.

교수님께서는 sample2.csv 를 받으면 시간축 주파수, 주파수를 draw 버튼을 누르면 그리는 코드를 주셨습니다.

file_name 부분을 어떻게 해야하는지 잘 모르겠습니다. 제가 만든 거에다가 추가를 하려니까 그 주파수, 시간축에 넣으려고 하면 에러가 뜹니다.

이 부분을 해결 할 수 있으신 분 있을까요? 삽질을 계속했는데 뭐가 문제인지 잘 모르겠습니다. (아마 배운지 얼마 안되서 그런 거 같아용,,,)

설명도 같이 해주시면 정말정말 감사합니다ㅠㅠ 


# data down
import os
import csv
import pandas as pd
import numpy as np
from numpy import *
from numpy.fft import *
from scipy.fftpack import *
from scipy.fft import *
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib import style
style.use('ggplot')

# tkinter
import tkinter as tk
import tkinter.ttk as ttk
import tkinter.messagebox as msgbox
from tkinter import filedialog
from tksheet import Sheet
from tkinter import *

# data?-?
sr = 2000
ts = 1/sr
file_name = 'C:/Users/Ninebell/Desktop/samples/sample2.csv'

# add file
def add_file():
d = demo()
files = filedialog.askopenfilenames(title='csv 파일을 선택하세요.',
filetypes=(('csv 파일', '*.csv'), ('모든 파일', '*.*')),
initialdir=r'C:/Users/Ninebell/Desktop/samples/')

# 사용자가 선택한 파일 목록
for file in files:
list_file.insert(END, file)

# del file
def del_file():
# print(list_file.curselection())
for index in reversed(list_file.curselection()):
list_file.delete(index)

# save file
def browse_dest_path():
folder_selected = filedialog.askdirectory()
if folder_selected == "": # 사용자가 취소를 누를 때
print("폴더 선택 취소")
return
# print(folder_selected)
txt_dest_path.delete(0, END)
txt_dest_path.insert(0, folder_selected)

# run file
def start():
# 파일 목록 확인
if list_file.size() == 0:
msgbox.showwarning("경고", "csv 파일을 추가하세요.")
return

# 저장 경로 확인
if len(txt_dest_path.get()) == 0:
msgbox.showwarning("경고", "저장 경로를 선택하세요")
return

# time frequency
def disp_time():
sample = pd.read_csv(file_name)
array = np.array(sample)
where_are_NaNs = np.isnan(array)

array[where_are_NaNs] = 0
x = array[:, 1]
y = array[:, 2]
z = array[:, 3]
t = np.arange(0, np.size(x)) * ts

f = plt.figure()
a1 = f.add_subplot(311)
a2 = f.add_subplot(312)
a3 = f.add_subplot(313)

a1.plot(t, x)
a2.plot(t, y)
a3.plot(t, z)
plt.show()

# frequency
def disp_freq():
sample = pd.read_csv(file_name)
array = np.array(sample)
where_are_NaNs = np.isnan(array)
array[where_are_NaNs] = 0

x = array[:, 1]
y = array[:, 2]
z = array[:, 3]
t = np.arange(0, np.size(x)) * ts

nfft = np.size(x)

X = np.fft.fft(x)
Y = np.fft.fft(y)
Z = np.fft.fft(z)

N = len(X)
n = np.arange(N)
T = N / sr
freq = n / T
# Get the one-sided specturm
n_oneside = N // 2
# get the one side frequency
f_oneside = freq[:n_oneside]

f = plt.figure()
a1 = f.add_subplot(311)
a2 = f.add_subplot(312)
a3 = f.add_subplot(313)

a1.plot(f_oneside, abs(X[:N // 2]))
a2.plot(f_oneside, abs(Y[:N // 2]))
a3.plot(f_oneside, abs(Z[:N // 2]))

plt.show()

class demo(tk.Tk):

def __init__(self):
tk.Tk.__init__(self)

self.grid_columnconfigure(0, weight=1)
self.grid_rowconfigure(0, weight=1)
self.frame = tk.Frame(self)
self.frame.grid_columnconfigure(0, weight=1)
self.frame.grid_rowconfigure(0, weight=1)
self.sheet = Sheet(
self.frame,
data=pd.read_csv(
file_name, # filepath here
).values.tolist(),
)
self.sheet.enable_bindings()
self.frame.grid(row=0, column=0, sticky="nswe")
self.sheet.grid(row=0, column=0, sticky="nswe")

root = tk.Tk()
menu = Menu(root)

sample2.csv

https://drive.google.com/file/d/1JCzeldN8x5_YMTnslU59syUs2Oy_VAME/view?usp=sharing

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
- 설문 영포티룩도 멋지게 소화할 것 같은 40대 스타는? 운영자 25/10/27 - -
- AD 저녁 뭐먹지? 오늘의 메뉴 추천! 운영자 25/10/31 - -
1827 🔎질문 뉴비 셀레니움 질문 [7] yeongjeong(115.139) 22.07.29 201 0
1826 🔎질문 파이썬 질문 다시 드려요 (에러 창을 복사했는데 안보이네요. 이상하네요. [6] 궁금이(222.238) 22.07.28 174 0
1823 📚정보 파이썬 계산기(16): 루트k의 계산 신촌우왕87갤로그로 이동합니다. 22.07.28 189 1
1822 🔎질문 selenium element 질문 [2] oo(32.140) 22.07.28 208 1
1820 🔎질문 python pprint 써본사람? ㅇㅇ(182.223) 22.07.27 106 0
1817 🔎질문 파이참으로 크롤링 중인데 일시정지 있음??????????????????? [1] ㅇㅇ(39.118) 22.07.27 149 0
1816 🔎질문 파이참 opencv에서만 자동완성이 다 깨져서 나오는데 [2] ㅇㅇ(218.154) 22.07.27 743 0
1815 일반 와 평일 이 시간대에 [1] ㅁㅁ(223.38) 22.07.26 134 0
1814 🔎질문 이 세마포년이 뭐라는건지 아시는분 있습니노? [7] 키메라(1.212) 22.07.26 136 0
1813 🔎질문 마우스로 그림그리면 뭔가 처리할 수 있는 라이브러리가 있나요? [1] snake(223.62) 22.07.25 181 0
1812 일반 cls랑 time.sleep이 ㄹㅇ 시너지가 좋더라 [2] 하목금지조갤로그로 이동합니다. 22.07.25 145 0
1809 🔎질문 형들 파이썬 입문자 질문드려요 [3] ㅇㅇ(175.112) 22.07.24 224 0
1808 🔎질문 유데미 강의 추천좀 ㅇㅇ(59.2) 22.07.23 334 0
1807 일반 와 시발 크롤링 존나 힘들구나 [4] 치킨이좋아갤로그로 이동합니다. 22.07.23 355 0
1806 일반 뭐만 하면 오류 쳐 뜨네 ㅇㅇ(175.205) 22.07.23 98 0
1805 🔎질문 스레드 이해에 필요한 핵심키워드는 무엇입니노? [2] 키메라(211.36) 22.07.20 160 0
1804 🔎질문 이 쓰래기는 또 뭔데 [3] ㅇㅇ(59.27) 22.07.20 152 0
1803 📚정보 파이썬 계산기(15): 두 정수 나눗셈 일반화 [2] 신촌우왕87갤로그로 이동합니다. 22.07.19 205 1
1802 🔎질문 코린이 PyQt5 질문 [2] 기초(118.37) 22.07.19 172 0
1801 🔎질문 디씨 복붙가능 코드블록 생성기 왜 공지에서 없어졌어 [2] ㅇㅇ(45.14) 22.07.18 127 0
1799 🔎질문 파린이(코린이) 질문 [2] 기초(118.37) 22.07.16 143 0
1798 🔎질문 파이썬 개발도구 IDLE만으로도 다 해결됨? [3] ㅇㅇ(211.216) 22.07.16 178 0
1796 📚정보 파이썬 계산기(14): 뺄셈으로 몫과 나머지 빨리 구하기 [2] 신촌우왕87갤로그로 이동합니다. 22.07.14 232 1
1795 📚정보 자연수 n에 대한 <피타고라스 세 수> [1] 신촌우왕87갤로그로 이동합니다. 22.07.14 235 3
1793 📚정보 파이썬 계산기(13): 뺄셈을 이용한 몫과 나머지 [37] 신촌우왕87갤로그로 이동합니다. 22.07.14 461 1
1792 🔎질문 메일 크롤링 질문 [1] ㅇㅇ(175.198) 22.07.13 192 0
1790 🔎질문 이 코드 idle에서만 돌아가고 파이참에서는 안 돌아가는 이유 좀 [2] ㅇㅇ(59.27) 22.07.13 157 0
1789 📚정보 파이썬 계산기(12): 몫과 나머지 Code 및 문제점 [2] 신촌우왕87갤로그로 이동합니다. 22.07.13 258 1
1788 📚정보 파이썬 계산기(11): 실수의 나눗셈 정리 [1] 신촌우왕87갤로그로 이동합니다. 22.07.12 178 1
1787 🔎질문 아랫글 질문자인데 해결했습니다 근데 [1] ㅇㅇ(59.2) 22.07.11 711 0
1785 🔎질문 파이썬 셀레늄 if 갈림길 질문 [7] ㅇㅇ(59.2) 22.07.10 182 0
1783 일반 파이썬 계산기(10): 후위표기식에서 결과값 얻기 Code [1] 신촌우왕87갤로그로 이동합니다. 22.07.10 105 1
1782 일반 리스트와 행렬 [1] 신촌우왕87갤로그로 이동합니다. 22.07.09 129 0
1781 🔎질문 클래스는 왜 쓰는거야? [7] ㅇㅇ(14.54) 22.07.09 491 0
1780 일반 파이썬 계산기(9): 후위표기식에서 결과값 얻기 [2] 신촌우왕87갤로그로 이동합니다. 22.07.08 161 2
1779 🔎질문 형님들 GIL 질문드립니다. [2] 기초(118.37) 22.07.08 160 0
🔎질문 버튼 클릭 시 주파수 그래프 나오게 하는 방법 [2] 만자몽(106.101) 22.07.07 188 0
1777 🔎질문 파이썬 같이 boolean 자료형이 있는 언어에서는 [8] ㅇㅇ(125.129) 22.07.07 168 0
1776 🔎질문 파이썬 오류 고쳐줄 사람 부탁해요 [4] ㅇㅇ(180.81) 22.07.07 145 0
1775 🔎질문 이미지 향상 머신 러닝 [4] ㅇㅇ(221.153) 22.07.07 143 0
1774 🔎질문 Vs code 넘파이 불러오기 실패 [2] milkiscow(211.182) 22.07.07 164 0
1772 🔎질문 한줄로 입력받은 숫자들을 2개씩 끊어 입력받기 [8] ㅇㅇ(125.129) 22.07.05 176 1
1771 🔎질문 파이썬으로 인벤에서 특정 텍스트 검색하는 거 어케할 수 있어? [7] Sachi갤로그로 이동합니다. 22.07.05 255 0
1769 일반 파이썬 계산기(8): 나머지 연산자 %의 문제점 신촌우왕87갤로그로 이동합니다. 22.07.04 230 1
1768 🔎질문 기초적인 코드 질문 [4] 기초(118.37) 22.07.04 137 0
1767 일반 파이썬 계산기(7): math.floor()의 문제점 [3] 신촌우왕87갤로그로 이동합니다. 22.07.04 189 1
1766 📚정보 오래간만에 들렀습니다 ㅁㅁㅁㅁㅁ(223.38) 22.07.02 572 6
1765 🔎질문 각자 파이썬 버전 뭐로 쓰는지 말좀 해줘 [9] ㅇㅇ(175.206) 22.07.02 2330 1
1764 일반 파이썬 계산기(6): 토큰리스트에서 후위표기식 얻는 코드 신촌우왕87갤로그로 이동합니다. 22.07.01 362 6
1761 일반 개발자 <- 이 단어 존나 이상함 [2] 키메라(1.212) 22.06.28 223 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2