From 59495f75006215c2ca0b9e985c0e2477e4c3a3b0 Mon Sep 17 00:00:00 2001 From: gitea_eternal <401029566@qq.com> Date: Thu, 25 Jun 2026 16:18:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- q3/q3_3_质量自评.md | 1 + q4/q4_1/movies.json | 105 +++++++++++++++++++++++++++++++++++++++ q4/q4_1/q4_1.py | 19 +++++++ q4/q4_1/q4_1_bar.png | Bin 0 -> 16957 bytes q4/q4_2/movies.json | 105 +++++++++++++++++++++++++++++++++++++++ q4/q4_2/q4_2.py | 17 +++++++ q4/q4_2/q4_2_scatter.png | Bin 0 -> 21776 bytes q4/q4_3a/movies.json | 105 +++++++++++++++++++++++++++++++++++++++ q4/q4_3a/q4_3a.py | 14 ++++++ q4/q4_3a/q4_3a_hist.png | Bin 0 -> 16242 bytes q4/q4_3b/movies.json | 105 +++++++++++++++++++++++++++++++++++++++ q4/q4_3b/q4_3b.py | 14 ++++++ q4/q4_3b/q4_3b_hist.png | Bin 0 -> 12849 bytes 13 files changed, 485 insertions(+) create mode 100644 q3/q3_3_质量自评.md create mode 100644 q4/q4_1/movies.json create mode 100644 q4/q4_1/q4_1.py create mode 100644 q4/q4_1/q4_1_bar.png 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 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 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/q3/q3_3_质量自评.md b/q3/q3_3_质量自评.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/q3/q3_3_质量自评.md @@ -0,0 +1 @@ + diff --git a/q4/q4_1/movies.json b/q4/q4_1/movies.json new file mode 100644 index 0000000..20ba5dc --- /dev/null +++ b/q4/q4_1/movies.json @@ -0,0 +1,105 @@ +{ + "ID": "B-20260625-3464", + "movies": [ + { + "id": 1, + "title": "霸王别姬", + "director": "Frank Darabont", + "year": 2004, + "rating": 6.8, + "duration": 179, + "genre": "科幻", + "actors_count": 3 + }, + { + "id": 2, + "title": "放牛班的春天", + "director": "陈凯歌", + "year": 2019, + "rating": 6.7, + "duration": 117, + "genre": "喜剧", + "actors_count": 5 + }, + { + "id": 3, + "title": "泰坦尼克号", + "director": "Robert Zemeckis", + "year": 2015, + "rating": 9.1, + "duration": 177, + "genre": "爱情", + "actors_count": 4 + }, + { + "id": 4, + "title": "三傻大闹宝莱坞", + "director": "James Cameron", + "year": 2024, + "rating": 7.6, + "duration": 117, + "genre": "冒险", + "actors_count": 5 + }, + { + "id": 5, + "title": "阿甘正传", + "director": "宫崎骏", + "year": 2016, + "rating": 8.0, + "duration": 146, + "genre": "喜剧", + "actors_count": 3 + }, + { + "id": 6, + "title": "星际穿越", + "director": "Christopher Nolan", + "year": 2010, + "rating": 9.2, + "duration": 168, + "genre": "爱情", + "actors_count": 2 + }, + { + "id": 7, + "title": "忠犬八公的故事", + "director": "Lasse Hallström", + "year": 2016, + "rating": 9.3, + "duration": 106, + "genre": "悬疑", + "actors_count": 5 + }, + { + "id": 8, + "title": "肖申克的救赎", + "director": "Rajkumar Hirani", + "year": 2018, + "rating": 7.3, + "duration": 107, + "genre": "剧情", + "actors_count": 4 + }, + { + "id": 9, + "title": "千与千寻", + "director": "Christophe Barratier", + "year": 2019, + "rating": 7.3, + "duration": 118, + "genre": "动画", + "actors_count": 4 + }, + { + "id": 10, + "title": "盗梦空间", + "director": "Christopher Nolan", + "year": 2008, + "rating": 9.3, + "duration": 111, + "genre": "动画", + "actors_count": 5 + } + ] +} \ No newline at end of file diff --git a/q4/q4_1/q4_1.py b/q4/q4_1/q4_1.py new file mode 100644 index 0000000..b329ba7 --- /dev/null +++ b/q4/q4_1/q4_1.py @@ -0,0 +1,19 @@ +import json +import matplotlib.pyplot as plt + +movies = json.load(open('movies.json', encoding='utf-8'))['movies'] +# print(movies) +genres = {} +for m in movies: + g = m['genre'] + if g in genres: + genres[g] = genres[g] + 1 + else: + genres[g] = 1 +print(genres) +plt.figure(figsize=(8,5)) +plt.bar(genres.keys(), genres.values()) +plt.title('类型电影数量分布') +plt.xlabel('类型') +plt.ylabel('数量') +plt.savefig('q4_1_bar.png', dpi=150) \ No newline at end of file diff --git a/q4/q4_1/q4_1_bar.png b/q4/q4_1/q4_1_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..f76d00c13b6e39a7c69d10bbd11d2b153be499ab GIT binary patch literal 16957 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 literal 0 HcmV?d00001 diff --git a/q4/q4_2/movies.json b/q4/q4_2/movies.json new file mode 100644 index 0000000..20ba5dc --- /dev/null +++ b/q4/q4_2/movies.json @@ -0,0 +1,105 @@ +{ + "ID": "B-20260625-3464", + "movies": [ + { + "id": 1, + "title": "霸王别姬", + "director": "Frank Darabont", + "year": 2004, + "rating": 6.8, + "duration": 179, + "genre": "科幻", + "actors_count": 3 + }, + { + "id": 2, + "title": "放牛班的春天", + "director": "陈凯歌", + "year": 2019, + "rating": 6.7, + "duration": 117, + "genre": "喜剧", + "actors_count": 5 + }, + { + "id": 3, + "title": "泰坦尼克号", + "director": "Robert Zemeckis", + "year": 2015, + "rating": 9.1, + "duration": 177, + "genre": "爱情", + "actors_count": 4 + }, + { + "id": 4, + "title": "三傻大闹宝莱坞", + "director": "James Cameron", + "year": 2024, + "rating": 7.6, + "duration": 117, + "genre": "冒险", + "actors_count": 5 + }, + { + "id": 5, + "title": "阿甘正传", + "director": "宫崎骏", + "year": 2016, + "rating": 8.0, + "duration": 146, + "genre": "喜剧", + "actors_count": 3 + }, + { + "id": 6, + "title": "星际穿越", + "director": "Christopher Nolan", + "year": 2010, + "rating": 9.2, + "duration": 168, + "genre": "爱情", + "actors_count": 2 + }, + { + "id": 7, + "title": "忠犬八公的故事", + "director": "Lasse Hallström", + "year": 2016, + "rating": 9.3, + "duration": 106, + "genre": "悬疑", + "actors_count": 5 + }, + { + "id": 8, + "title": "肖申克的救赎", + "director": "Rajkumar Hirani", + "year": 2018, + "rating": 7.3, + "duration": 107, + "genre": "剧情", + "actors_count": 4 + }, + { + "id": 9, + "title": "千与千寻", + "director": "Christophe Barratier", + "year": 2019, + "rating": 7.3, + "duration": 118, + "genre": "动画", + "actors_count": 4 + }, + { + "id": 10, + "title": "盗梦空间", + "director": "Christopher Nolan", + "year": 2008, + "rating": 9.3, + "duration": 111, + "genre": "动画", + "actors_count": 5 + } + ] +} \ No newline at end of file diff --git a/q4/q4_2/q4_2.py b/q4/q4_2/q4_2.py new file mode 100644 index 0000000..ec9d996 --- /dev/null +++ b/q4/q4_2/q4_2.py @@ -0,0 +1,17 @@ +import json +import matplotlib.pyplot as plt + +movies = json.load(open('movies.json', encoding='utf-8'))['movies'] +# print(movies) +ratings = [] +durations = [] +for m in movies: + ratings.append(m['rating']) + durations.append(m['duration']) + +plt.figure(figsize=(8,5)) +plt.scatter(durations,ratings,color='red',alpha=0.6) +plt.title('时长与评分关系散点图') +plt.xlabel('duration') +plt.ylabel('rating') +plt.savefig('q4_2_scatter.png', dpi=150) \ 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..97ea82bb31b5e5dd2bfceff0231f32f9c4d65db3 GIT binary patch literal 21776 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 J+IQwZ{V((~FHQge literal 0 HcmV?d00001 diff --git a/q4/q4_3a/movies.json b/q4/q4_3a/movies.json new file mode 100644 index 0000000..20ba5dc --- /dev/null +++ b/q4/q4_3a/movies.json @@ -0,0 +1,105 @@ +{ + "ID": "B-20260625-3464", + "movies": [ + { + "id": 1, + "title": "霸王别姬", + "director": "Frank Darabont", + "year": 2004, + "rating": 6.8, + "duration": 179, + "genre": "科幻", + "actors_count": 3 + }, + { + "id": 2, + "title": "放牛班的春天", + "director": "陈凯歌", + "year": 2019, + "rating": 6.7, + "duration": 117, + "genre": "喜剧", + "actors_count": 5 + }, + { + "id": 3, + "title": "泰坦尼克号", + "director": "Robert Zemeckis", + "year": 2015, + "rating": 9.1, + "duration": 177, + "genre": "爱情", + "actors_count": 4 + }, + { + "id": 4, + "title": "三傻大闹宝莱坞", + "director": "James Cameron", + "year": 2024, + "rating": 7.6, + "duration": 117, + "genre": "冒险", + "actors_count": 5 + }, + { + "id": 5, + "title": "阿甘正传", + "director": "宫崎骏", + "year": 2016, + "rating": 8.0, + "duration": 146, + "genre": "喜剧", + "actors_count": 3 + }, + { + "id": 6, + "title": "星际穿越", + "director": "Christopher Nolan", + "year": 2010, + "rating": 9.2, + "duration": 168, + "genre": "爱情", + "actors_count": 2 + }, + { + "id": 7, + "title": "忠犬八公的故事", + "director": "Lasse Hallström", + "year": 2016, + "rating": 9.3, + "duration": 106, + "genre": "悬疑", + "actors_count": 5 + }, + { + "id": 8, + "title": "肖申克的救赎", + "director": "Rajkumar Hirani", + "year": 2018, + "rating": 7.3, + "duration": 107, + "genre": "剧情", + "actors_count": 4 + }, + { + "id": 9, + "title": "千与千寻", + "director": "Christophe Barratier", + "year": 2019, + "rating": 7.3, + "duration": 118, + "genre": "动画", + "actors_count": 4 + }, + { + "id": 10, + "title": "盗梦空间", + "director": "Christopher Nolan", + "year": 2008, + "rating": 9.3, + "duration": 111, + "genre": "动画", + "actors_count": 5 + } + ] +} \ No newline at end of file diff --git a/q4/q4_3a/q4_3a.py b/q4/q4_3a/q4_3a.py new file mode 100644 index 0000000..ff6357c --- /dev/null +++ b/q4/q4_3a/q4_3a.py @@ -0,0 +1,14 @@ +import json +import matplotlib.pyplot as plt + +movies = json.load(open('movies.json', encoding='utf-8'))['movies'] +# print(movies) +ratings = [] +durations = [] +for m in movies: + ratings.append(m['rating']) + durations.append(m['duration']) + +plt.figure(figsize=(8,5)) +plt.hist(ratings, bins=5,color='blue') +plt.savefig('q4_3a_hist.png',dpi=150) diff --git a/q4/q4_3a/q4_3a_hist.png b/q4/q4_3a/q4_3a_hist.png new file mode 100644 index 0000000000000000000000000000000000000000..838a99a6c3cbc1009f8108b03d131a2bd3135e64 GIT binary patch literal 16242 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 literal 0 HcmV?d00001 diff --git a/q4/q4_3b/movies.json b/q4/q4_3b/movies.json new file mode 100644 index 0000000..20ba5dc --- /dev/null +++ b/q4/q4_3b/movies.json @@ -0,0 +1,105 @@ +{ + "ID": "B-20260625-3464", + "movies": [ + { + "id": 1, + "title": "霸王别姬", + "director": "Frank Darabont", + "year": 2004, + "rating": 6.8, + "duration": 179, + "genre": "科幻", + "actors_count": 3 + }, + { + "id": 2, + "title": "放牛班的春天", + "director": "陈凯歌", + "year": 2019, + "rating": 6.7, + "duration": 117, + "genre": "喜剧", + "actors_count": 5 + }, + { + "id": 3, + "title": "泰坦尼克号", + "director": "Robert Zemeckis", + "year": 2015, + "rating": 9.1, + "duration": 177, + "genre": "爱情", + "actors_count": 4 + }, + { + "id": 4, + "title": "三傻大闹宝莱坞", + "director": "James Cameron", + "year": 2024, + "rating": 7.6, + "duration": 117, + "genre": "冒险", + "actors_count": 5 + }, + { + "id": 5, + "title": "阿甘正传", + "director": "宫崎骏", + "year": 2016, + "rating": 8.0, + "duration": 146, + "genre": "喜剧", + "actors_count": 3 + }, + { + "id": 6, + "title": "星际穿越", + "director": "Christopher Nolan", + "year": 2010, + "rating": 9.2, + "duration": 168, + "genre": "爱情", + "actors_count": 2 + }, + { + "id": 7, + "title": "忠犬八公的故事", + "director": "Lasse Hallström", + "year": 2016, + "rating": 9.3, + "duration": 106, + "genre": "悬疑", + "actors_count": 5 + }, + { + "id": 8, + "title": "肖申克的救赎", + "director": "Rajkumar Hirani", + "year": 2018, + "rating": 7.3, + "duration": 107, + "genre": "剧情", + "actors_count": 4 + }, + { + "id": 9, + "title": "千与千寻", + "director": "Christophe Barratier", + "year": 2019, + "rating": 7.3, + "duration": 118, + "genre": "动画", + "actors_count": 4 + }, + { + "id": 10, + "title": "盗梦空间", + "director": "Christopher Nolan", + "year": 2008, + "rating": 9.3, + "duration": 111, + "genre": "动画", + "actors_count": 5 + } + ] +} \ No newline at end of file diff --git a/q4/q4_3b/q4_3b.py b/q4/q4_3b/q4_3b.py new file mode 100644 index 0000000..2e12382 --- /dev/null +++ b/q4/q4_3b/q4_3b.py @@ -0,0 +1,14 @@ +import json +import matplotlib.pyplot as plt + +movies = json.load(open('movies.json', encoding='utf-8'))['movies'] +# print(movies) +ratings = [] +durations = [] +for m in movies: + ratings.append(m['rating']) + durations.append(m['duration']) + +plt.figure(figsize=(8,5)) +plt.hist(durations, bins=5,color='blue') +plt.savefig('q4_3b_hist.png',dpi=150) \ 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..6e9ef9bdd521f7bc4d21ad5580a1cb33f5475fa3 GIT binary patch literal 12849 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 literal 0 HcmV?d00001