From d0658b1f49f52ff74eb9ef099c007d093b501e01 Mon Sep 17 00:00:00 2001 From: 2509165045 <2509165045@student.edu.cn> Date: Thu, 25 Jun 2026 17:42:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=9F=E6=9C=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- q4/movies.json | 102 +++++++++++++++++++++++++++++++++++++++ q4/q4_1/movies.json | 102 +++++++++++++++++++++++++++++++++++++++ q4/q4_1/q4_1.py | 18 +++++-- q4/q4_1/q4_1_bar.png | Bin 0 -> 12525 bytes q4/q4_2/q4_2.py | 15 ++++++ q4/q4_2/q4_2_scatter.png | Bin 0 -> 22550 bytes q4/q4_3a/q4-3a.py | 14 ++++++ q4/q4_3a/q4_3a_hist.png | Bin 0 -> 14575 bytes q4/q4_3b/q4_3b.py | 13 +++++ q4/q4_3b/q4_3b_hist.png | Bin 0 -> 16636 bytes 10 files changed, 260 insertions(+), 4 deletions(-) create mode 100644 q4/movies.json create mode 100644 q4/q4_1/movies.json create mode 100644 q4/q4_1/q4_1_bar.png 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/q4-3a.py create mode 100644 q4/q4_3a/q4_3a_hist.png create mode 100644 q4/q4_3b/q4_3b.py create mode 100644 q4/q4_3b/q4_3b_hist.png diff --git a/q4/movies.json b/q4/movies.json new file mode 100644 index 0000000..aca6aed --- /dev/null +++ b/q4/movies.json @@ -0,0 +1,102 @@ +[ + { + "id": 1, + "title": "泰坦尼克号", + "director": "Frank Darabont", + "year": 1994, + "rating": 9.1, + "duration": 150, + "genre": "剧情", + "actors_count": 2 + }, + { + "id": 2, + "title": "肖申克的救赎", + "director": "陈凯歌", + "year": 2004, + "rating": 7.8, + "duration": 180, + "genre": "剧情", + "actors_count": 2 + }, + { + "id": 3, + "title": "霸王别姬", + "director": "Robert Zemeckis", + "year": 2014, + "rating": 7.6, + "duration": 160, + "genre": "冒险", + "actors_count": 2 + }, + { + "id": 4, + "title": "忠犬八公的故事", + "director": "James Cameron", + "year": 1992, + "rating": 9.5, + "duration": 167, + "genre": "悬疑", + "actors_count": 5 + }, + { + "id": 5, + "title": "盗梦空间", + "director": "宫崎骏", + "year": 2014, + "rating": 8.2, + "duration": 176, + "genre": "喜剧", + "actors_count": 3 + }, + { + "id": 6, + "title": "阿甘正传", + "director": "Christopher Nolan", + "year": 2016, + "rating": 6.9, + "duration": 97, + "genre": "动画", + "actors_count": 2 + }, + { + "id": 7, + "title": "三傻大闹宝莱坞", + "director": "Lasse Hallström", + "year": 2003, + "rating": 7.0, + "duration": 122, + "genre": "悬疑", + "actors_count": 2 + }, + { + "id": 8, + "title": "放牛班的春天", + "director": "Rajkumar Hirani", + "year": 2021, + "rating": 8.7, + "duration": 140, + "genre": "喜剧", + "actors_count": 5 + }, + { + "id": 9, + "title": "星际穿越", + "director": "Christophe Barratier", + "year": 2002, + "rating": 9.0, + "duration": 125, + "genre": "冒险", + "actors_count": 5 + }, + { + "id": 10, + "title": "千与千寻", + "director": "Christopher Nolan", + "year": 2021, + "rating": 7.3, + "duration": 173, + "genre": "剧情", + "actors_count": 3 + } +] \ No newline at end of file diff --git a/q4/q4_1/movies.json b/q4/q4_1/movies.json new file mode 100644 index 0000000..aca6aed --- /dev/null +++ b/q4/q4_1/movies.json @@ -0,0 +1,102 @@ +[ + { + "id": 1, + "title": "泰坦尼克号", + "director": "Frank Darabont", + "year": 1994, + "rating": 9.1, + "duration": 150, + "genre": "剧情", + "actors_count": 2 + }, + { + "id": 2, + "title": "肖申克的救赎", + "director": "陈凯歌", + "year": 2004, + "rating": 7.8, + "duration": 180, + "genre": "剧情", + "actors_count": 2 + }, + { + "id": 3, + "title": "霸王别姬", + "director": "Robert Zemeckis", + "year": 2014, + "rating": 7.6, + "duration": 160, + "genre": "冒险", + "actors_count": 2 + }, + { + "id": 4, + "title": "忠犬八公的故事", + "director": "James Cameron", + "year": 1992, + "rating": 9.5, + "duration": 167, + "genre": "悬疑", + "actors_count": 5 + }, + { + "id": 5, + "title": "盗梦空间", + "director": "宫崎骏", + "year": 2014, + "rating": 8.2, + "duration": 176, + "genre": "喜剧", + "actors_count": 3 + }, + { + "id": 6, + "title": "阿甘正传", + "director": "Christopher Nolan", + "year": 2016, + "rating": 6.9, + "duration": 97, + "genre": "动画", + "actors_count": 2 + }, + { + "id": 7, + "title": "三傻大闹宝莱坞", + "director": "Lasse Hallström", + "year": 2003, + "rating": 7.0, + "duration": 122, + "genre": "悬疑", + "actors_count": 2 + }, + { + "id": 8, + "title": "放牛班的春天", + "director": "Rajkumar Hirani", + "year": 2021, + "rating": 8.7, + "duration": 140, + "genre": "喜剧", + "actors_count": 5 + }, + { + "id": 9, + "title": "星际穿越", + "director": "Christophe Barratier", + "year": 2002, + "rating": 9.0, + "duration": 125, + "genre": "冒险", + "actors_count": 5 + }, + { + "id": 10, + "title": "千与千寻", + "director": "Christopher Nolan", + "year": 2021, + "rating": 7.3, + "duration": 173, + "genre": "剧情", + "actors_count": 3 + } +] \ No newline at end of file diff --git a/q4/q4_1/q4_1.py b/q4/q4_1/q4_1.py index b8927e9..5c82852 100644 --- a/q4/q4_1/q4_1.py +++ b/q4/q4_1/q4_1.py @@ -1,6 +1,16 @@ import matplotlib.pyplot as plt import json -with open ("movies.json","r",encoding='utf-8') as f: - print(f) -genre_count=() -plt.bar \ No newline at end of file +movies= json.load(open('movies.json',encoding='utf-8')) +genres= {} +for m in movies: + g=m['genre'] + if g in genres: + genres['g'] = genres['g']+1 + else: + genres['g']=1 +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) diff --git a/q4/q4_1/q4_1_bar.png b/q4/q4_1/q4_1_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..81ecd2f84993c3bc821b686b8e2a55309e946ada GIT binary patch literal 12525 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 L^PA+aFW&fH4SBR| literal 0 HcmV?d00001 diff --git a/q4/q4_3a/q4-3a.py b/q4/q4_3a/q4-3a.py new file mode 100644 index 0000000..273225e --- /dev/null +++ b/q4/q4_3a/q4-3a.py @@ -0,0 +1,14 @@ +import matplotlib.pyplot as plt +import json +movies= json.load(open('movies.json',encoding='utf-8')) +rating=[] +durations=[] +for m in movies: + rating.append(m['rating']) + durations.append(m['duration']) +plt.title("评分分布") +plt.xlabel("评分") +plt.figure(figsize=(8,5)) +plt.hist(rating,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..e19911e276177aa1d63e1f5505df499ef2937da6 GIT binary patch literal 14575 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 literal 0 HcmV?d00001 diff --git a/q4/q4_3b/q4_3b.py b/q4/q4_3b/q4_3b.py new file mode 100644 index 0000000..c98fee2 --- /dev/null +++ b/q4/q4_3b/q4_3b.py @@ -0,0 +1,13 @@ +import matplotlib.pyplot as plt +import json +movies= json.load(open('movies.json',encoding='utf-8')) +rating=[] +durations=[] +for m in movies: + durations.append(m['duration']) +plt.title("时长分布") +plt.xlabel("min") +plt.figure(figsize=(8,5)) +plt.hist(durations,bins=5,color='green') +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..ac4c54869de9c87169f8541f30617b9ef9b9bfbd GIT binary patch literal 16636 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