对只包含导演,演员,评分,上映时间,片名,类型和片长的电影数据进行可视化分析,至少十五个分析
时间: 2024-05-23 21:14:00 浏览: 144
1. 不同类型电影数量占比饼图
2. 不同类型电影评分平均值柱状图
3. 不同导演电影数量排名条形图
4. 不同导演电影评分平均值柱状图
5. 不同演员电影数量排名条形图
6. 不同演员主演电影评分平均值柱状图
7. 不同片长电影数量占比饼图
8. 不同片长电影评分平均值柱状图
9. 电影上映时间的年份分布柱状图
10. 每年上映的电影数量折线图
11. 每年上映的电影平均评分折线图
12. 不同类型电影的平均片长柱状图
13. 不同类型电影的平均评分折线图
14. 不同演员主演电影数量与评分的散点图
15. 不同导演电影数量与评分的散点图
相关问题
对只包含导演,演员,评分,上映时间,片名,类型和片长的电影数据进行可视化分析,至少十五个代码分析
1. 导入必要的库和数据集
```python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 读取数据集
movies = pd.read_csv('movies.csv')
```
2. 观察数据集的基本信息
```python
# 查看数据集前5行
movies.head()
# 查看数据集的基本信息
movies.info()
# 查看数据集中是否存在缺失值
movies.isnull().sum()
```
3. 统计电影类型的数量及比例
```python
# 统计每种电影类型的数量
genre_count = movies['类型'].value_counts()
# 将数量转换为百分比
genre_percent = genre_count / sum(genre_count) * 100
# 绘制饼图
plt.pie(genre_percent, labels=genre_percent.index, autopct='%1.1f%%')
plt.title('电影类型比例')
plt.show()
```
4. 统计每年上映电影数量的变化趋势
```python
# 提取上映年份
movies['year'] = movies['上映时间'].apply(lambda x: int(x.split('-')[0]))
# 统计每年上映电影数量
year_count = movies['year'].value_counts().sort_index()
# 绘制折线图
plt.plot(year_count.index, year_count.values)
plt.title('每年上映电影数量变化趋势')
plt.xlabel('年份')
plt.ylabel('电影数量')
plt.show()
```
5. 统计评分的分布情况
```python
# 绘制评分分布直方图
plt.hist(movies['评分'], bins=20)
plt.title('评分分布')
plt.xlabel('评分')
plt.ylabel('电影数量')
plt.show()
# 绘制评分箱线图
sns.boxplot(movies['评分'])
plt.title('评分箱线图')
plt.xlabel('评分')
plt.show()
```
6. 统计电影时长的分布情况
```python
# 绘制电影时长分布直方图
plt.hist(movies['片长'], bins=20)
plt.title('电影时长分布')
plt.xlabel('电影时长(分钟)')
plt.ylabel('电影数量')
plt.show()
# 绘制电影时长箱线图
sns.boxplot(movies['片长'])
plt.title('电影时长箱线图')
plt.xlabel('电影时长(分钟)')
plt.show()
```
7. 统计每个导演执导电影的数量及比例
```python
# 统计每个导演执导电影的数量
director_count = movies['导演'].value_counts()
# 将数量转换为百分比
director_percent = director_count / sum(director_count) * 100
# 绘制柱状图
plt.bar(director_percent.index, director_percent.values)
plt.xticks(rotation=90)
plt.title('导演执导电影数量比例')
plt.xlabel('导演')
plt.ylabel('电影数量(百分比)')
plt.show()
```
8. 统计演员出演电影的数量及比例
```python
# 将演员名字拆分成列表形式
movies['演员'] = movies['演员'].apply(lambda x: x.split('/'))
# 将演员列表扩展成行,并去重
actor_df = movies.explode('演员').drop_duplicates()
# 统计每个演员出演电影的数量
actor_count = actor_df['演员'].value_counts()
# 将数量转换为百分比
actor_percent = actor_count / sum(actor_count) * 100
# 绘制柱状图
plt.bar(actor_percent.index[:20], actor_percent.values[:20])
plt.xticks(rotation=90)
plt.title('演员出演电影数量比例')
plt.xlabel('演员')
plt.ylabel('电影数量(百分比)')
plt.show()
```
9. 统计每种类型电影的平均评分和电影时长
```python
# 将类型列拆分成列表形式
movies['类型'] = movies['类型'].apply(lambda x: x.split('/'))
# 将类型列表扩展成行,并去重
genre_df = movies.explode('类型').drop_duplicates()
# 统计每种类型电影的平均评分和电影时长
genre_stats = genre_df.groupby('类型')['评分', '片长'].mean()
# 绘制堆叠柱状图
genre_stats.plot(kind='bar', stacked=True)
plt.title('每种类型电影的平均评分和电影时长')
plt.xlabel('电影类型')
plt.ylabel('平均值')
plt.show()
```
10. 统计每个导演执导电影的平均评分和电影时长
```python
# 统计每个导演执导电影的平均评分和电影时长
director_stats = movies.groupby('导演')['评分', '片长'].mean().sort_values(by='评分', ascending=False)[:20]
# 绘制堆叠柱状图
director_stats.plot(kind='bar', stacked=True)
plt.xticks(rotation=90)
plt.title('每个导演执导电影的平均评分和电影时长')
plt.xlabel('导演')
plt.ylabel('平均值')
plt.show()
```
11. 统计每种类型电影的平均评分和上映年份
```python
# 统计每种类型电影的平均评分和上映年份
genre_year_stats = genre_df.groupby(['类型', 'year'])['评分'].mean()
# 绘制热力图
sns.heatmap(genre_year_stats.unstack(), cmap='YlGnBu')
plt.title('每种类型电影的平均评分和上映年份')
plt.show()
```
12. 统计每个导演执导电影的平均评分和上映年份
```python
# 统计每个导演执导电影的平均评分和上映年份
director_year_stats = movies.groupby(['导演', 'year'])['评分'].mean()
# 绘制热力图
sns.heatmap(director_year_stats.unstack(), cmap='YlGnBu')
plt.xticks(rotation=90)
plt.title('每个导演执导电影的平均评分和上映年份')
plt.show()
```
13. 统计每种类型电影的平均评分和电影时长的散点图
```python
# 统计每种类型电影的平均评分和电影时长
genre_stats = genre_df.groupby('类型')['评分', '片长'].mean()
# 绘制散点图
plt.scatter(genre_stats['片长'], genre_stats['评分'])
plt.title('每种类型电影的平均评分和电影时长')
plt.xlabel('电影时长(分钟)')
plt.ylabel('平均评分')
plt.show()
```
14. 统计每个导演执导电影的平均评分和电影时长的散点图
```python
# 统计每个导演执导电影的平均评分和电影时长
director_stats = movies.groupby('导演')['评分', '片长'].mean().sort_values(by='评分', ascending=False)[:20]
# 绘制散点图
plt.scatter(director_stats['片长'], director_stats['评分'])
plt.xticks(rotation=90)
plt.title('每个导演执导电影的平均评分和电影时长')
plt.xlabel('电影时长(分钟)')
plt.ylabel('平均评分')
plt.show()
```
15. 统计每个演员出演电影的平均评分和电影时长的散点图
```python
# 统计每个演员出演电影的平均评分和电影时长
actor_stats = actor_df.groupby('演员')['评分', '片长'].mean().sort_values(by='评分', ascending=False)[:20]
# 绘制散点图
plt.scatter(actor_stats['片长'], actor_stats['评分'])
plt.xticks(rotation=90)
plt.title('每个演员出演电影的平均评分和电影时长')
plt.xlabel('电影时长(分钟)')
plt.ylabel('平均评分')
plt.show()
```
阅读全文