用代码实现以下功能:创建tkinter窗口,实现用户登陆功能(可以注册和更换密码),登陆成功后有图表和表格两个不同的页面,其中表格页可以较为规模地展示csv内的数据,而图表页可以选择csv文件内的信息(如薪资,地区,经验,学历,经验,公司规模)进行可视化图表处理
时间: 2024-02-24 07:55:26 浏览: 65
好的,我可以为您编写相关代码。首先需要安装pandas和matplotlib库,可以通过以下命令进行安装:
```
pip install pandas matplotlib
```
接下来是实现功能的代码:
```python
import tkinter as tk
import pandas as pd
import matplotlib.pyplot as plt
# 用户信息存储,可以使用文件或者数据库进行存储
users = {
"user1": "password1",
"user2": "password2"
}
# 加载csv数据
data = pd.read_csv("data.csv")
# 创建tkinter窗口
root = tk.Tk()
root.title("用户登陆")
# 创建用户名和密码输入框
tk.Label(root, text="用户名:").grid(row=0)
tk.Label(root, text="密码:").grid(row=1)
username_entry = tk.Entry(root)
password_entry = tk.Entry(root, show="*")
username_entry.grid(row=0, column=1)
password_entry.grid(row=1, column=1)
# 用户登陆函数
def login():
username = username_entry.get()
password = password_entry.get()
if username in users and users[username] == password:
# 登陆成功后打开数据展示窗口
root.destroy()
show_data()
# 用户注册函数
def register():
username = username_entry.get()
password = password_entry.get()
if username not in users:
users[username] = password
tk.messagebox.showinfo("注册成功", "注册成功,请登陆!")
# 创建登陆和注册按钮
login_button = tk.Button(root, text="登陆", command=login)
register_button = tk.Button(root, text="注册", command=register)
login_button.grid(row=2, column=0)
register_button.grid(row=2, column=1)
# 数据展示窗口
def show_data():
data_window = tk.Tk()
data_window.title("数据展示")
# 创建表格展示
data_frame = pd.DataFrame(data)
table = tk.Text(data_window, height=len(data_frame)+2, width=len(data_frame.columns)*10)
table.insert(tk.END, data_frame.to_string(index=False))
table.pack()
# 创建图表展示
figure_window = tk.Toplevel(data_window)
figure_window.title("图表展示")
# 选择展示的列
columns = data_frame.columns.tolist()
selected_column = tk.StringVar(figure_window)
selected_column.set(columns[0])
column_option_menu = tk.OptionMenu(figure_window, selected_column, *columns)
column_option_menu.pack()
# 创建图表展示
def show_figure():
plt.figure()
plt.bar(data_frame[selected_column.get()].unique(), data_frame[selected_column.get()].value_counts())
plt.title(selected_column.get())
plt.show()
# 创建展示按钮
show_button = tk.Button(figure_window, text="展示", command=show_figure)
show_button.pack()
data_window.mainloop()
root.mainloop()
```
该代码实现了一个简单的用户登陆和数据展示功能。用户可以通过注册和更换密码来进行用户管理,登陆成功后可以展示csv数据的表格和图表。用户可以选择展示的列来进行图表展示。
阅读全文