Python Tkinter 数据可视化:导入 CSV 数据并绘制散点图
以下是一个简单的示例代码,实现了数据集导入和散点图显示功能:
import tkinter as tk
from tkinter import filedialog
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
class App(tk.Tk):
def __init__(self):
super().__init__()
self.title('数据集导入和散点图显示')
# 创建导入按钮
self.import_button = tk.Button(self, text='导入数据集', command=self.import_data)
self.import_button.pack(padx=10, pady=10)
# 创建图像选择按钮
self.scatter_button = tk.Button(self, text='散点图', command=self.show_scatter)
self.scatter_button.pack(padx=10, pady=10)
# 创建画布
self.figure = plt.Figure(figsize=(5, 4), dpi=100)
self.canvas = FigureCanvasTkAgg(self.figure, master=self)
self.canvas.get_tk_widget().pack()
# 初始化数据
self.data = None
def import_data(self):
# 打开文件选择对话框
file_path = filedialog.askopenfilename(filetypes=[('CSV文件', '*.csv')])
if file_path:
# 读取CSV文件
self.data = pd.read_csv(file_path)
print(self.data.head())
def show_scatter(self):
if self.data is not None:
# 绘制散点图
ax = self.figure.add_subplot(111)
ax.clear()
ax.scatter(self.data['x'], self.data['y'])
ax.set_xlabel('x')
ax.set_ylabel('y')
self.canvas.draw()
else:
print('请先导入数据集!')
if __name__ == '__main__':
app = App()
app.mainloop()
运行以上代码,会弹出一个窗口,其中包含了一个“导入数据集”按钮和一个“散点图”按钮。点击“导入数据集”按钮后,会弹出一个文件选择对话框,选择CSV文件后会自动读取数据集。点击“散点图”按钮后,会在窗口中显示出散点图。注意,这里只是一个简单的示例,实际应用中还需要考虑更多的细节和异常情况。
原文地址: https://www.cveoy.top/t/topic/ocvh 著作权归作者所有。请勿转载和采集!