import numpy as np
import matplotlib.pyplot as plt
from tkinter import Tk, Label, Entry, Button
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
# 시그모이드 함수 정의
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 그래프 그리기 함수
def plot_sigmoid():
try:
x_min = float(entry_xmin.get())
x_max = float(entry_xmax.get())
x_points = int(entry_xpoints.get())
x = np.linspace(x_min, x_max, x_points)
y = sigmoid(x)
# 기존 그래프 삭제
ax.cla()
ax.plot(x, y)
ax.set_title("Sigmoid Function")
ax.set_xlabel("x")
ax.set_ylabel("Sigmoid(x)")
# 그래프 업데이트
canvas.draw()
except ValueError:
label_result.config(text="Error: Invalid input!")
# GUI 설정
root = Tk()
root.title("Sigmoid Function Plotter")
# 입력 필드 및 라벨 추가
label_xmin = Label(root, text="x min:")
label_xmin.grid(row=0, column=0)
entry_xmin = Entry(root)
entry_xmin.grid(row=0, column=1)
label_xmax = Label(root, text="x max:")
label_xmax.grid(row=1, column=0)
entry_xmax = Entry(root)
entry_xmax.grid(row=1, column=1)
label_xpoints = Label(root, text="Number of points:")
label_xpoints.grid(row=2, column=0)
entry_xpoints = Entry(root)
entry_xpoints.grid(row=2, column=1)
# 결과 및 그래프 표시 영역
label_result = Label(root, text="")
label_result.grid(row=3, column=0, columnspan=2)
# 버튼 추가
button_plot = Button(root, text="Plot", command=plot_sigmoid)
button_plot.grid(row=4, column=0, columnspan=2)
# Matplotlib figure 및 canvas 설정
fig, ax = plt.subplots()
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.get_tk_widget().grid(row=5, column=0, columnspan=2)
# 기본값 설정
entry_xmin.insert(0, "-10")
entry_xmax.insert(0, "10")
entry_xpoints.insert(0, "100")
root.mainloop()
'정보통신기술(ICT)' 카테고리의 다른 글
쌍곡 함수 (1) | 2024.10.08 |
---|---|
델타 함수 (0) | 2024.10.07 |
로그 함수 (0) | 2024.10.02 |
부산의 연간 강수량 예측(1904년 ~ 2023년) (1) | 2024.10.01 |
날씨 소프트웨어 코딩 (1) | 2024.09.30 |