以下是一个简单的示例代码,可以根据需求进行修改和完善:

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

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

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

# 创建下拉列表和标签
gender_var = tk.StringVar()
gender_label = tk.Label(window, text='请选择性别:')
gender_label.pack()
gender_select = tk.OptionMenu(window, gender_var, '男', '女')
gender_select.pack()

feature_var = tk.StringVar()
feature_label = tk.Label(window, text='请选择图的特征:')
feature_label.pack()
feature_select = tk.OptionMenu(window, feature_var, 'forehead_width_cm', 'forehead_height_cm', 'long_hair', 'nose_wide', 'nose_long', 'lips_thin', 'distance_nose_to_lip_long')
feature_select.pack()

# 创建画布和坐标轴
fig = plt.figure(figsize=(6, 4), dpi=100)
canvas = tkagg.FigureCanvasTkAgg(fig, master=window)
canvas.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)

ax = fig.add_subplot(111)

# 定义更新图形的函数
def update_plot():
    # 根据选择的特征和性别,筛选数据集
    if gender_var.get() == '男':
        sub_data = data[data['gender'] == 1]
    else:
        sub_data = data[data['gender'] == 0]
    
    x = sub_data[feature_var.get()]
    
    # 绘制直方图
    ax.clear()
    ax.hist(x, bins='auto')
    ax.set_xlabel(feature_var.get())
    ax.set_ylabel('count')
    ax.set_title('Histogram of {} for {}'.format(feature_var.get(), gender_var.get()))
    fig.tight_layout()
    canvas.draw()

# 绑定选择事件和更新函数
gender_var.trace('w', lambda *args: update_plot())
feature_var.trace('w', lambda *args: update_plot())

# 初始化图形
update_plot()

# 运行窗口
window.mainloop()
``
怎么用python语言设计一个tkinter窗口作用是数据可视化能够分别以gender:男女男1女0在本窗口中查看显示data数据集中forehead_width_cm浮点数绘制一个直方图将forehead_width_cm分布的数据按照一定的间隔进行分组并将每组数据的数量表示出来。XY轴的设置如下:X轴:forehead_width_cm;Y轴:count;间隔:根据数据的范围和数量进行选择使得

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

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