Update README.md

main
p2apfqmgs 3 months ago
parent 6f011665a9
commit 434ef694a8

@ -55,61 +55,43 @@ PPT汇报具体要求什么的4.11课上问问,同时也可以尝试能不能
现在急需将其完善,可以在功能上进一步简化,而图形界面能看即可,确保能交差 现在急需将其完善,可以在功能上进一步简化,而图形界面能看即可,确保能交差
如果可以延期就再美化,不能就能交差即可 如果可以延期就再美化,不能就能交差即可
import pandas as pd def start(self):
import numpy as np """处理查询按钮点击事件"""
import matplotlib.pyplot as plt isbn = self.entry00.get().strip()
if not isbn:
plt.rcParams['font.sans-serif'] = ['SimHei'] self.result_text.config(state=tk.NORMAL)
plt.rcParams['axes.unicode_minus'] = False self.result_text.delete(1.0, tk.END)
self.result_text.insert(tk.END, "请输入ISBN编号")
movies_df_new = pd.read_csv("/data/bigfiles/movie_metadata_new.csv") self.result_text.config(state=tk.DISABLED)
################begin######################## return
#票房与预算关系
# 筛选2014年及之后的数据 # 禁用按钮防止重复点击
df_2014_2016 = movies_df_new[movies_df_new['title_year'] >= 2014] self.query_button.config(state=tk.DISABLED, text="查询中...")
self.root.update() # 强制更新界面
# 按预算升序排序
df_sorted = df_2014_2016.sort_values('budget') try:
result = query_isbn(isbn)
# 绘制散点图 self.result_text.config(state=tk.NORMAL)
plt.figure(figsize=(10, 10)) self.result_text.delete(1.0, tk.END)
plt.scatter(df_sorted['movie_title'], df_sorted['budget'], color='red', s=20, label='budget') if isinstance(result, dict):
plt.scatter(df_sorted['movie_title'], df_sorted['gross'], color='green', s=20, label='gross') formatted_result = "\n".join(f"{k}: {v}" for k, v in result.items())
plt.xticks([]) self.result_text.insert(tk.END, formatted_result)
# 设置图表属性 elif isinstance(result, list):
plt.title('电影票房与预算的关系', fontsize=20) # 修改为与模糊搜索相同的输出格式
plt.xlabel('movie_title') formatted_results = "\n\n".join(
plt.ylabel('budget/gross') "\n".join(f"{k}: {v}" for k, v in book.items())
for book in result
# 旋转x轴标签 )
self.result_text.insert(tk.END, formatted_results)
plt.legend() else:
#################end######################### self.result_text.insert(tk.END, result)
plt.savefig("step5/result/pic1.png") self.result_text.config(state=tk.DISABLED)
plt.close()
except Exception as e:
################begin######################## self.result_text.config(state=tk.NORMAL)
#数据归一化处理 self.result_text.delete(1.0, tk.END)
# 筛选2015-2016年数据不包含2014 self.result_text.insert(tk.END, f"查询出错: {str(e)}")
df_2015_2016 = movies_df_new[(movies_df_new['title_year'] > 2014) & (movies_df_new['title_year'] <= 2016)] self.result_text.config(state=tk.DISABLED)
finally:
# 归一化处理 # 恢复按钮状态
df_2015_2016['cast_total_likes_norm'] = df_2015_2016['cast_total_likes'] / df_2015_2016['cast_total_likes'].max() self.query_button.config(state=tk.NORMAL, text="查询")
df_2015_2016['gross_norm'] = df_2015_2016['gross'] / df_2015_2016['gross'].max()
# 演员的获赞总数与票房的关系
plt.figure(figsize=(10, 10))
plt.scatter(df_2015_2016['movie_title'], df_2015_2016['cast_total_likes_norm'], color='red', s=20, label='cast_total_likes')
plt.scatter(df_2015_2016['movie_title'], df_2015_2016['gross_norm'], color='green', s=20, label='gross')
plt.xticks([])
# 设置图表属性
plt.title('演员的获赞总数与票房的关系', fontsize=10)
plt.xlabel('movie_title')
plt.ylabel('cast_total_likes/gross')
plt.legend()
# 旋转x轴标签
#################end#########################
plt.savefig("step5/result/pic2.png")
plt.close()
Loading…
Cancel
Save