diff --git a/q4/q4_1/q4_1.py b/q4/q4_1/q4_1.py new file mode 100644 index 0000000..ba205f1 --- /dev/null +++ b/q4/q4_1/q4_1.py @@ -0,0 +1,24 @@ +import json +import matplotlib.pyplot as plt + +# 设置中文字体(防止中文乱码) +plt.rcParams['font.sans-serif'] = ['SimHei'] +plt.rcParams['axes.unicode_minus'] = False + +with open('simulated-examination/q2_1_crawler/movies.json', 'r', encoding='utf-8') as f: + movies = json.load(f) + +genre_count = {} +for m in movies: + genre_count[m['genre']] = genre_count.get(m['genre'], 0) + 1 + +genres = list(genre_count.keys()) +counts = list(genre_count.values()) + +plt.figure() +plt.bar(genres, counts) +plt.title("类型电影数量分布") +plt.xlabel("类型名称") +plt.ylabel("电影数量") +plt.savefig('q4_1_bar.png', dpi=150) +# plt.show() # 如果是在IDE里不想显示弹窗可以注释掉 \ 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 0000000..21dd1d0 Binary files /dev/null and b/q4/q4_1/q4_1_bar.png differ diff --git a/q4/q4_2/q4_2.py b/q4/q4_2/q4_2.py new file mode 100644 index 0000000..18f1f41 --- /dev/null +++ b/q4/q4_2/q4_2.py @@ -0,0 +1,18 @@ +import json +import matplotlib.pyplot as plt + +plt.rcParams['font.sans-serif'] = ['SimHei'] +plt.rcParams['axes.unicode_minus'] = False + +with open('simulated-examination/q2_1_crawler/movies.json', 'r', encoding='utf-8') as f: + movies = json.load(f) + +durations = [m['duration'] for m in movies] +ratings = [m['rating'] for m in movies] + +plt.figure() +plt.scatter(durations, ratings, c='red', alpha=0.6) +plt.title("时长与评分关系散点图") +plt.xlabel("时长(分钟)") +plt.ylabel("评分") +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 0000000..d1bad60 Binary files /dev/null and b/q4/q4_2/q4_2_scatter.png differ diff --git a/q4/q4_3a/q4_3a.py b/q4/q4_3a/q4_3a.py new file mode 100644 index 0000000..fb554cd --- /dev/null +++ b/q4/q4_3a/q4_3a.py @@ -0,0 +1,16 @@ +import json +import matplotlib.pyplot as plt + +plt.rcParams['font.sans-serif'] = ['SimHei'] +plt.rcParams['axes.unicode_minus'] = False + +with open('simulated-examination/q2_1_crawler/movies.json', 'r', encoding='utf-8') as f: + movies = json.load(f) + +ratings = [m['rating'] for m in movies] + +plt.figure() +plt.hist(ratings, bins=5, color='blue') +plt.title("评分分布") +plt.xlabel("评分") +plt.savefig('q4_3a_hist.png', dpi=150) \ 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 0000000..1574e1a Binary files /dev/null and b/q4/q4_3a/q4_3a_hist.png differ diff --git a/q4/q4_3b/q4_3b.py b/q4/q4_3b/q4_3b.py new file mode 100644 index 0000000..a1b7df3 --- /dev/null +++ b/q4/q4_3b/q4_3b.py @@ -0,0 +1,16 @@ +import json +import matplotlib.pyplot as plt + +plt.rcParams['font.sans-serif'] = ['SimHei'] +plt.rcParams['axes.unicode_minus'] = False + +with open('simulated-examination/q2_1_crawler/movies.json', 'r', encoding='utf-8') as f: + movies = json.load(f) + +durations = [m['duration'] for m in movies] + +plt.figure() +plt.hist(durations, bins=5, color='green') +plt.title("时长分布") +plt.xlabel("时长(分钟)") +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 0000000..39a70f6 Binary files /dev/null and b/q4/q4_3b/q4_3b_hist.png differ