import tkinter as tk
from tkinter import ttk
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
# 오방색의 RGB와 CMYK 값 정의
obang_colors = {
"Blue": {"RGB": (0, 66, 119), "CMYK": (1, 0.44, 0, 0.53)},
"Red": {"RGB": (255, 0, 0), "CMYK": (0, 1, 1, 0)},
"Yellow": {"RGB": (255, 223, 0), "CMYK": (0, 0.13, 1, 0)},
"White": {"RGB": (255, 255, 255), "CMYK": (0, 0, 0, 0)},
"Black": {"RGB": (0, 0, 0), "CMYK": (0, 0, 0, 1)}
}
# GUI 창 설정
root = tk.Tk()
root.title("오방색 RGB/CMYK 그래프")
root.geometry("500x400")
# 색상 선택 콤보박스
selected_color = tk.StringVar()
color_combobox = ttk.Combobox(root, textvariable=selected_color)
color_combobox["values"] = list(obang_colors.keys())
color_combobox.grid(column=0, row=0, padx=10, pady=10)
# 그래프 생성 함수
def plot_color():
color = selected_color.get()
if color not in obang_colors:
return
rgb_values = obang_colors[color]["RGB"]
cmyk_values = obang_colors[color]["CMYK"]
# Matplotlib 그래프 설정
fig, ax = plt.subplots(1, 2, figsize=(8, 4))
# RGB 막대 그래프
rgb_normalized = [(rgb / 255) for rgb in rgb_values] # RGB 값을 0-1 사이로 정규화
ax[0].bar(["R", "G", "B"], rgb_values, color=[(rgb_normalized[0], rgb_normalized[1], rgb_normalized[2])])
ax[0].set_title(f"{color} - RGB")
ax[0].set_ylim(0, 255)
# CMYK 막대 그래프
ax[1].bar(["C", "M", "Y", "K"], [value * 100 for value in cmyk_values], color="cyan")
ax[1].set_title(f"{color} - CMYK")
ax[1].set_ylim(0, 100)
# Tkinter 창에 그래프 표시
canvas = FigureCanvasTkAgg(fig, root)
canvas.get_tk_widget().grid(column=0, row=2, columnspan=2)
canvas.draw()
# 버튼 생성
plot_button = tk.Button(root, text="그래프 그리기", command=plot_color)
plot_button.grid(column=1, row=0, padx=10, pady=10)
root.mainloop()
'정보통신기술(ICT)' 카테고리의 다른 글
로보틱 플라스틱 분류 알고리즘 (1) | 2024.11.15 |
---|---|
한국어-영어 맞춤법 기초 검사기 (2) | 2024.11.14 |
파이썬 GUI 모듈 인핸스(Enhanced) 타입 (0) | 2024.11.12 |
파이썬-기반 GUI 볼텍스 형상화(Python-based GUI Vortex Visualization) (0) | 2024.11.11 |
초연공학(Conscious Engineering) (0) | 2024.11.10 |