From 1dd52409e793b7b0c3ca1780a5c86b57d4dc09bb Mon Sep 17 00:00:00 2001 From: 2509165005 <2509165005@student.edu.cn> Date: Mon, 6 Jul 2026 14:19:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=20q4=5F3=20=E8=AF=84?= =?UTF-8?q?=E5=88=86+=E6=97=B6=E9=95=BF=E7=9B=B4=E6=96=B9=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- q4/q4_3a/movies.json | 105 ++++++++++++++++++++++++++++++++++++++++ q4/q4_3a/q4_3a.py | 25 ++++++++++ q4/q4_3a/q4_3a_hist.png | Bin 0 -> 15414 bytes 3 files changed, 130 insertions(+) create mode 100644 q4/q4_3a/movies.json create mode 100644 q4/q4_3a/q4_3a.py create mode 100644 q4/q4_3a/q4_3a_hist.png diff --git a/q4/q4_3a/movies.json b/q4/q4_3a/movies.json new file mode 100644 index 0000000..32b16f9 --- /dev/null +++ b/q4/q4_3a/movies.json @@ -0,0 +1,105 @@ +{ + "data_code": "B-20260705-9162", + "movies": [ + { + "id": 1, + "title": "放牛班的春天", + "director": "Frank Darabont", + "year": 2007, + "rating": 8.9, + "duration": 155, + "genre": "悬疑", + "actors_count": 5 + }, + { + "id": 2, + "title": "霸王别姬", + "director": "陈凯歌", + "year": 2018, + "rating": 6.6, + "duration": 143, + "genre": "剧情", + "actors_count": 4 + }, + { + "id": 3, + "title": "星际穿越", + "director": "Robert Zemeckis", + "year": 2018, + "rating": 8.4, + "duration": 165, + "genre": "悬疑", + "actors_count": 5 + }, + { + "id": 4, + "title": "肖申克的救赎", + "director": "James Cameron", + "year": 2008, + "rating": 8.6, + "duration": 124, + "genre": "剧情", + "actors_count": 5 + }, + { + "id": 5, + "title": "盗梦空间", + "director": "宫崎骏", + "year": 1993, + "rating": 7.8, + "duration": 90, + "genre": "爱情", + "actors_count": 2 + }, + { + "id": 6, + "title": "泰坦尼克号", + "director": "Christopher Nolan", + "year": 2001, + "rating": 6.7, + "duration": 175, + "genre": "喜剧", + "actors_count": 4 + }, + { + "id": 7, + "title": "忠犬八公的故事", + "director": "Lasse Hallström", + "year": 2004, + "rating": 8.2, + "duration": 91, + "genre": "动画", + "actors_count": 3 + }, + { + "id": 8, + "title": "三傻大闹宝莱坞", + "director": "Rajkumar Hirani", + "year": 2011, + "rating": 6.3, + "duration": 175, + "genre": "冒险", + "actors_count": 3 + }, + { + "id": 9, + "title": "阿甘正传", + "director": "Christophe Barratier", + "year": 2022, + "rating": 7.9, + "duration": 107, + "genre": "动画", + "actors_count": 4 + }, + { + "id": 10, + "title": "千与千寻", + "director": "Christopher Nolan", + "year": 1993, + "rating": 7.2, + "duration": 129, + "genre": "悬疑", + "actors_count": 3 + } + ] +} diff --git a/q4/q4_3a/q4_3a.py b/q4/q4_3a/q4_3a.py new file mode 100644 index 0000000..74d7334 --- /dev/null +++ b/q4/q4_3a/q4_3a.py @@ -0,0 +1,25 @@ +# q4_3a.py +import json +import matplotlib.pyplot as plt + +# 读取数据 +with open("movies.json", "r", encoding="utf-8") as f: + data = json.load(f) + +movies = data["movies"] + +# 提取评分 +ratings = [] +for m in movies: + ratings.append(m["rating"]) + +# 绘制直方图 +plt.hist(ratings, bins=5, color="blue") +plt.title("评分分布") +plt.xlabel("评分") + +# 保存图片 +plt.savefig("q4_3a_hist.png", dpi=150) +plt.close() + +print("✅ q4_3a 完成!") \ No newline at end of file diff --git a/q4/q4_3a/q4_3a_hist.png b/q4/q4_3a/q4_3a_hist.png new file mode 100644 index 0000000000000000000000000000000000000000..7484108c6a8c47ab4de471bfdcf247447c68696b GIT binary patch literal 15414 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ÐHS^Js_?%_TUO$4#3BE) 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 literal 0 HcmV?d00001