Python基础编程题:
编写程序,选择自己5个朋友姓名、体重和身高存入字典中,
通过GUI设计一个输入框和一个按钮,可以加入更多的朋友的内容;
设计一个按钮,按钮点击可以画出体重柱形图;
还有一个按钮,点击可以对身高和体重进行OLS回归,并画出散点图和拟合图。
'''
编写程序,选择自己5个朋友姓名、体重和身高存入字典中,
通过GUI设计一个输入框和一个按钮,可以加入更多的朋友的内容;
设计一个按钮,按钮点击可以画出体重柱形图;
还有一个按钮,点击可以对身高和体重进行OLS回归,并画出散点图和拟合图。
'''
import tkinter as tk
import tkinter.messagebox
import matplotlib.pyplot as plt
import re
from sklearn.linear_model import LinearRegression
import numpy as np
root = tk.Tk()
root.title('朋友的体重的柱形图以及身高体重的线性关系')
root.geometry('450x250+300+250')
friends = {'小1': [50, 170], '小2': [65, 178], '小3': [80, 162], '小4': [96, 188], '小5': [42, 150]}
label = tk.Label(root, text='在这里输入你的朋友的信息,\n分别为姓名,体重(kg),身高(m),用中文逗号隔开')
label.place(x=50,y=0)
entry = tk.Entry(root)
entry.place(x=100,y=50)
def add_friends():
global friends
content = entry.get()
pattern = '.*?,\d*.?\d*,\d*.?\d*'
if not re.match(pattern, content):
tkinter.messagebox.showinfo('错误报告', '格式不对,重新输入')
else:
name, weight, height = content.split(',')
friends[name] = [float(weight), float(height)]
def draw_bar():
global friends
weight, height = [], []
new_friends = {}
for key in friends:
weight.append(friends[key][0])
height.append(friends[key][1])
new_friends[key] = friends[key][0]
plt.figure(figsize=(12,8))
plt.rcParams['font.sans-serif']='SimHei'
plt.bar(new_friends.keys(), new_friends.values())
plt.title('体重柱形图')
plt.show()
def draw_OLS():
global friends
weight, height = [], []
for key in friends:
weight.append(friends[key][0])
height.append(friends[key][1])
plt.figure(figsize=(12,8))
plt.rcParams['font.sans-serif']='SimHei'
plt.scatter(height, weight, c='r', marker='*')
weight = np.array(weight)
weight = weight.reshape(-1, 1)
height = np.array(height)
height = height.reshape(-1, 1)
model = LinearRegression()
result = model.fit(height, weight)
alpha = result.intercept_
beta = result.coef_[0]
x = np.linspace(min(height), max(height), 1000)
y = model.predict(x) # 这是直接用函数的方法
# y = alpha + beta * x # 这是取参数自己算的方法
plt.plot(x, y)
plt.title('体重和身高散点图')
plt.show()
button0 = tk.Button(root, text='加入朋友', command=add_friends)
button1 = tk.Button(root, text='画柱形图', command=draw_bar)
button2 = tk.Button(root, text='画散点拟合图', command=draw_OLS)
button0.place(x=125,y=75)
button1.place(x=125,y=115)
button2.place(x=125,y=155)
root.mainloop()


PythonGUI应用:创建朋友信息管理与数据可视化
该程序使用Python的Tkinter库创建了一个GUI界面,用户可以输入朋友的姓名、体重和身高信息存储在字典中。程序还包含两个功能按钮,一个用于绘制体重的柱状图,另一个执行身高与体重的OLS回归分析,并展示散点图和拟合图。通过这个应用,用户可以动态添加朋友数据并直观地查看体重分布和身高体重的关系。
474

被折叠的 条评论
为什么被折叠?



