豆瓣Top250大数据可视化分析
引言
豆瓣是中国最大的电影评分和评论网站之一,其Top250电影榜单是广大影迷和电影爱好者关注的焦点。本文将使用Python进行豆瓣Top250电影数据的获取和可视化分析,通过数据分析和可视化展示,我们可以深入了解这些电影的特点和趋势。
数据获取
首先,我们需要获取豆瓣Top250电影的数据。豆瓣提供了API接口,可以通过发送HTTP请求获取电影数据。以下是使用Python的requests库发送HTTP请求的示例代码:
import requests
url = '
params = {
'start': 0,
'count': 250
}
response = requests.get(url, params=params)
data = response.json()
以上代码中,我们发送了一个GET请求到豆瓣的API接口,并传递了起始位置和数量参数。接口返回的数据为JSON格式,我们使用response.json()
将其转换为Python字典。
数据处理与分析
获取到数据后,我们可以进行进一步的处理和分析。首先,我们可以提取每个电影的评分、评分人数、上映年份等信息,并计算出平均评分和评分人数的分布情况。以下是示例代码:
ratings = []
votes = []
years = []
for movie in data['subjects']:
rating = movie['rating']['average']
vote = movie['rating']['numRaters']
year = movie['year']
ratings.append(rating)
votes.append(vote)
years.append(year)
average_rating = sum(ratings) / len(ratings)
average_vote = sum(votes) / len(votes)
以上代码中,我们使用循环遍历每个电影,提取出评分、评分人数和上映年份,并分别保存到对应的列表中。最后,我们计算出平均评分和评分人数。
接下来,我们可以使用Matplotlib库进行数据可视化。以下是示例代码:
import matplotlib.pyplot as plt
# 绘制平均评分的直方图
plt.hist(ratings, bins=10, color='steelblue', edgecolor='k')
plt.xlabel('Rating')
plt.ylabel('Count')
plt.title('Distribution of Ratings')
plt.show()
# 绘制评分人数和平均评分的散点图
plt.scatter(votes, ratings, color='steelblue', alpha=0.6)
plt.xlabel('Votes')
plt.ylabel('Rating')
plt.title('Votes vs Rating')
plt.show()
以上代码中,我们使用Matplotlib的plt.hist()
绘制平均评分的直方图,并使用plt.scatter()
绘制评分人数和平均评分的散点图。
结果展示与分析
通过以上的数据处理和可视化分析,我们可以得到豆瓣Top250电影的一些特点和趋势。以下是结果的展示和分析:
平均评分分布
通过绘制平均评分的直方图,我们可以看出豆瓣Top250电影的评分主要集中在7-9之间,其中8分的电影数量最多,说明这些电影总体上受到观众的较高评价。
评分人数与平均评分关系
通过绘制评分人数和平均评分的散点图,我们可以看出评分人数与平均评分之间存在一定的正相关关系。评分人数较多的电影往往具有较高的平均评分,说明这些电影受到了更多观众的认可和喜爱。
旅行图(Journey)
旅行图(Journey)是一种用来展示过程或事件的图表,我们可以使用Mermaid语法中的journey
标识来绘制旅行图。以下是豆瓣Top250电影的旅行图示例代码:
journey
title Journey of Top250 Movies
section 1990-2000
Top Gun --> The Lion King --> Titanic
section 2000-2010
Gladiator --> The Lord of the Rings