关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 2301_78069275 2024-06-03 22:13
采纳率: 62.5%
浏览 2 首页/
编程语言
/ python代码修改 python #帮我看看代码,有问题,表格是14列200行的,但是水平滚动条不对,导入数据后页面布局会改变
import pandas as pd
import tkinter as tk
from tkinter import ttk
from tkinter import filedialog, messagebox
import ttkbootstrap as ttkb
import string
from ttkbootstrap.tooltip import ToolTip
import copy
# 读取数据
fraud = pd.read_csv("E:\\creditcard.csv\\creditcard.csv")
# 创建Tkinter窗口
root = ttkb.Window()
root.title("DataFrame in Tkinter")
root.geometry("1500x1000+1000+700")
style = ttkb.Style()
style.theme_use("lumen")
style.configure("Custom.TButton", font=("'System'",15), padding=15)
style.configure("Custom.Treeview", rowheight=80)
# 创建左侧和右侧的Frame
left_frame = tk.Frame(root,relief='ridge',borderwidth=1)
right_frame = tk.Frame(root,relief='ridge',borderwidth=1)
left_frame.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
right_frame.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
tree = ttk.Treeview(left_frame)
# 创建树状结构
treeF1 = tree.insert("", 0, "导入数据", text="导入数据", values=("F1"))
treeF2 = tree.insert("", 1, "数据预处理", text="数据预处理", values=("F2"))
treeF3 = tree.insert("", 2, "特征工程", text="数据工程", values=("F3"))
treeF4 = tree.insert("", 3, "模型训练", text="模型训练", values=("F4"))
treeF5 = tree.insert("", 4, "性能评估", text="性能评估", values=("F5"))
# 二级目录
treeF1_1 = tree.insert(treeF1, 0, "部分数据展示", text="部分数据展示", values=("F1_1"))
treeF2_1 = tree.insert(treeF2, 0, "数据描述", text="数据描述", values=("F2_1"))
treeF2_2 = tree.insert(treeF2, 1, "缺失值查看", text="缺失值查看", values=("F2_2"))
treeF2_3 = tree.insert(treeF2, 2, "数据标准化", text="数据标准化", values=("F2_3"))
treeF3_1 = tree.insert(treeF3, 0, "标签分布可视化", text="标签分布可视化", values=("F3_1"))
treeF3_2 = tree.insert(treeF3, 1, "数据探索", text="数据探索", values=("F3_2"))
treeF4_1 = tree.insert(treeF4, 0, "SMOTE过采样", text="SMOTE过采样", values=("F4_1"))
treeF4_2 = tree.insert(treeF4, 1, "支持向量机", text="支持向量机", values=("F4_2"))
treeF5_1 = tree.insert(treeF5, 0, "Accuracy", text="Accuracy", values=("F5_1"))
treeF5_2 = tree.insert(treeF5, 1, "混淆矩阵", text="混淆矩阵", values=("F5_2"))
treeF5_3 = tree.insert(treeF5, 2, "ROC曲线", text="ROC曲线", values=("F5_3"))
# 三级目录
treeF3_2_1 = tree.insert(treeF3_2, 0, "两种标签的amount对比", text="两种标签的amount对比", values=("treeF3_2_1"))
treeF3_2_2 = tree.insert(treeF3_2, 1, "两种标签的time对比", text="两种标签的time对比", values=("treeF3_2_2"))
treeF3_2_3 = tree.insert(treeF3_2, 2, "其他特征分布", text="其他特征分布", values=("treeF3_2_3"))
tree.pack()
canvas = tk.Canvas(right_frame, bg="white")
canvas.pack(fill=tk.BOTH, expand=True)
def display_data():
# 清除画布内容
canvas.delete("all")
# 创建一个新的Treeview组件
data_tree = ttk.Treeview(canvas, columns=list(fraud.columns), show="headings",height=canvas.winfo_height())
# 设置列标题
for col in fraud.columns:
data_tree.heading(col, text=col)
# 插入数据
for index, row in fraud.iterrows():
data_tree.insert("", "end", values=list(row))
# 将Treeview组件添加到画布
canvas.create_window(0, 0, anchor="nw", window=data_tree)
# 创建竖直滚动条
v_scrollbar = tk.Scrollbar(canvas, orient=tk.VERTICAL, command=data_tree.yview)
v_scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
data_tree.configure(yscrollcommand=v_scrollbar.set)
# 创建水平滚动条
h_scrollbar = tk.Scrollbar(canvas, orient=tk.HORIZONTAL, command=data_tree.xview)
h_scrollbar.pack(side=tk.BOTTOM, fill=tk.X)
data_tree.configure(xscrollcommand=h_scrollbar.set)
# 更新画布的滚动区域
canvas.configure(scrollregion=canvas.bbox("all"))
# 绑定点击事件
tree.bind("<
>", lambda event: display_data() if tree.focus() == "部分数据展示" else None)
# 启动Tkinter主循环
root.mainloop()
展开全部
收起
写回答
好问题
0 提建议
追加酬金
关注问题
微信扫一扫 点击复制链接 分享 邀请回答
编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0
(可追加 ¥500)
¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付
二维码出错
点击刷新
支付金额
15 元
提供问题酬金的用户不参与问题酬金结算和分配
支付即为同意
《付费问题酬金结算规则》 结题 再想想 删除 再等等