From 5e2b606039f3f032e9e88b2c2c65b56602891b66 Mon Sep 17 00:00:00 2001 From: 2509165005 <2509165005@student.edu.cn> Date: Mon, 6 Jul 2026 14:22:03 +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_3b/movies.json | 105 ++++++++++++++++++++++++++++++++++++++++ q4/q4_3b/q4_3b.py | 21 ++++++++ q4/q4_3b/q4_3b_hist.png | Bin 0 -> 13803 bytes 3 files changed, 126 insertions(+) create mode 100644 q4/q4_3b/movies.json create mode 100644 q4/q4_3b/q4_3b.py create mode 100644 q4/q4_3b/q4_3b_hist.png diff --git a/q4/q4_3b/movies.json b/q4/q4_3b/movies.json new file mode 100644 index 0000000..32b16f9 --- /dev/null +++ b/q4/q4_3b/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_3b/q4_3b.py b/q4/q4_3b/q4_3b.py new file mode 100644 index 0000000..124902a --- /dev/null +++ b/q4/q4_3b/q4_3b.py @@ -0,0 +1,21 @@ +# q4_3b.py +import json +import matplotlib.pyplot as plt + +with open("../q4_2/movies.json", "r", encoding="utf-8") as f: + data = json.load(f) + +movies = data["movies"] + +durations = [] +for m in movies: + durations.append(m["duration"]) + +plt.hist(durations, bins=5, color="green") +plt.title("时长分布") +plt.xlabel("时长(分钟)") + +plt.savefig("q4_3b_hist.png", dpi=150) +plt.close() + +print("✅ 时长直方图生成成功!") \ No newline at end of file diff --git a/q4/q4_3b/q4_3b_hist.png b/q4/q4_3b/q4_3b_hist.png new file mode 100644 index 0000000000000000000000000000000000000000..2db26b94641293b983dd706a57c6049e530f6c23 GIT binary patch literal 13803 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 E0G?2;DgXcg literal 0 HcmV?d00001