From d107481792f502ab69c807989698ec5e7873b8ad Mon Sep 17 00:00:00 2001 From: 2509165005 <2509165005@student.edu.cn> Date: Mon, 6 Jul 2026 14:12:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=20q4=5F2=20=E6=95=A3?= =?UTF-8?q?=E7=82=B9=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- q4/q4_2/movies.json | 105 +++++++++++++++++++++++++++++++++++++++ q4/q4_2/q4_2.py | 33 ++++++++++++ q4/q4_2/q4_2_scatter.png | Bin 0 -> 18066 bytes 3 files changed, 138 insertions(+) create mode 100644 q4/q4_2/movies.json create mode 100644 q4/q4_2/q4_2.py create mode 100644 q4/q4_2/q4_2_scatter.png diff --git a/q4/q4_2/movies.json b/q4/q4_2/movies.json new file mode 100644 index 0000000..32b16f9 --- /dev/null +++ b/q4/q4_2/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_2/q4_2.py b/q4/q4_2/q4_2.py new file mode 100644 index 0000000..13c7468 --- /dev/null +++ b/q4/q4_2/q4_2.py @@ -0,0 +1,33 @@ +# q4_2.py +import json +import matplotlib.pyplot as plt + +# 1. 读取文件 +with open("movies.json", "r", encoding="utf-8") as f: + data = json.load(f) + +# 2. 安全提取电影列表 +if type(data) is dict and "movies" in data: + movies = data["movies"] +else: + movies = [] + +# 3. 准备数据 +x_data = [] +y_data = [] + +for item in movies: + # 这一行彻底防止报错 + if type(item) is dict: + x_data.append(item["duration"]) + y_data.append(item["rating"]) + +# 4. 画图(题目全部要求) +plt.scatter(x_data, y_data, color="red", alpha=0.6) +plt.title("时长与评分关系散点图") +plt.xlabel("时长(分钟)") +plt.ylabel("评分") +plt.savefig("q4_2_scatter.png", dpi=150) +plt.close() + +print("运行成功!") \ No newline at end of file diff --git a/q4/q4_2/q4_2_scatter.png b/q4/q4_2/q4_2_scatter.png new file mode 100644 index 0000000000000000000000000000000000000000..026687833b6432f5b4804082c2b106476ddd041b GIT binary patch literal 18066 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 Vw?1eXgyt~ZIjw)B{oUm5{{pQ3UC{sl literal 0 HcmV?d00001