以下是一个简单的实现:

import tkinter as tk
import pandas as pd
import matplotlib.pyplot as plt

# 读取数据集
data = pd.read_csv('data.csv')

# 创建主窗口
root = tk.Tk()
root.title('数据可视化')
root.geometry('600x600')

# 创建下拉列表选择性别
gender_var = tk.StringVar(root)
gender_var.set('男性')
gender_label = tk.Label(root, text='请选择性别')
gender_label.pack()
gender_option = tk.OptionMenu(root, gender_var, '男性', '女性')
gender_option.pack()

# 创建下拉列表选择特征
feature_var = tk.StringVar(root)
feature_var.set('forehead_width_cm')
feature_label = tk.Label(root, text='请选择图的特征')
feature_label.pack()
feature_option = tk.OptionMenu(root, feature_var, 'forehead_width_cm', 'forehead_height_cm', 'long_hair', 'nose_wide', 'nose_long', 'lips_thin', 'distance_nose_to_lip_long')
feature_option.pack()

# 创建画布
figure_canvas = tk.Canvas(root, width=500, height=400)
figure_canvas.pack()

# 更新图像
def update_figure():
    # 获取选择的性别和特征
    gender = 1 if gender_var.get() == '男性' else 0
    feature = feature_var.get()
    
    # 筛选数据
    filtered_data = data.loc[data['gender'] == gender]
    
    # 绘制散点图或柱状图
    if feature in ['forehead_width_cm', 'forehead_height_cm']:
        plt.scatter(filtered_data[feature], filtered_data['face_width_cm'])
        plt.xlabel(feature)
        plt.ylabel('face_width_cm')
    else:
        counts = filtered_data[feature].value_counts()
        plt.bar(counts.index, counts.values)
        plt.xlabel(feature)
        plt.ylabel('count')
    
    # 清空画布并绘制图像
    figure_canvas.delete('all')
    figure_canvas.draw()
    
    # 显示图像
    plt.show()

# 创建更新按钮
update_button = tk.Button(root, text='更新', command=update_figure)
update_button.pack()

# 运行主循环
root.mainloop()

需要注意的是,在绘制图像时需要使用 matplotlib 库。由于 matplotlib 不支持直接在 tkinter 窗口中绘制图像,需要先创建一个画布,然后将画布添加到窗口中,最后在画布上绘制图像。在更新图像时,需要先清空画布,然后重新绘制图像

怎么用python语言设计一个tkinter窗口作用是数据可视化能够分别以gender:男女男1女0在本窗口中查看显示data数据集中forehead_width_cm浮点数的散点图forehead_height_cm浮点数的散点图;long_hair01的柱状图、nose_wide01的柱状图、nose_long01的柱状图、lips_thin01的柱状图、distance_nose_to_li

原文地址: https://www.cveoy.top/t/topic/g1AJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录