写一个有固定数据并且使用了matplolib的相对复杂一些的数据可视化项目
时间: 2024-06-04 21:13:59 浏览: 12
以下是一个有关电影票房的数据可视化项目:
```python
import matplotlib.pyplot as plt
import numpy as np
# 固定数据
movies = ['Avengers: Endgame', 'Avatar', 'Titanic', 'Star Wars: The Force Awakens', 'Avengers: Infinity War', 'Jurassic World', 'The Lion King', 'The Avengers', 'Furious 7', 'Frozen II']
gross = [2.798, 2.789, 2.187, 2.068, 2.048, 1.671, 1.657, 1.519, 1.516, 1.450]
budget = [356, 237, 200, 245, 316, 150, 260, 220, 190, 150]
year = [2019, 2009, 1997, 2015, 2018, 2015, 2019, 2012, 2015, 2019]
# 创建画布
fig, ax = plt.subplots()
# 设置标题
ax.set_title('Top 10 Highest Grossing Movies of All Time', fontsize=16)
# 绘制水平条形图
y_pos = np.arange(len(movies))
ax.barh(y_pos, gross, align='center', color='blue', alpha=0.5)
# 设置y轴标签
ax.set_yticks(y_pos)
ax.set_yticklabels(movies, fontsize=12)
# 设置x轴标签
ax.set_xlabel('Gross Revenue (in billions USD)', fontsize=12)
# 添加数值标签
for i, v in enumerate(gross):
ax.text(v + 0.1, i, str(v), color='blue', fontsize=10)
# 添加网格线
ax.grid(axis='x', linestyle='--', alpha=0.5)
# 添加副标题
ax.text(0.95, 0.05, 'Data source: Box Office Mojo', transform=ax.transAxes, fontsize=10, ha='right')
# 添加右侧y轴,显示电影年份和制片成本
ax2 = ax.twinx()
ax2.set_yticks(y_pos)
ax2.set_yticklabels(year, fontsize=10)
ax2.set_ylabel('Year of Release', fontsize=10)
ax2.tick_params(axis='y', labelright=True)
ax3 = ax.twinx()
ax3.spines["right"].set_position(("axes", 1.1))
ax3.set_frame_on(True)
ax3.patch.set_visible(False)
for sp in ax3.spines.values():
sp.set_visible(False)
ax3.yaxis.tick_right()
ax3.set_ylim(ax.get_ylim())
ax3.set_yticks(y_pos)
ax3.set_yticklabels(budget, fontsize=10)
ax3.set_ylabel('Production Budget (in millions USD)', fontsize=10)
ax3.yaxis.set_label_position('right')
# 调整画布大小
fig.set_size_inches(12, 8)
# 展示图形
plt.show()
```
该数据可视化项目展示了历史上票房最高的10部电影,使用了水平条形图来展示电影的总票房收入,同时还展示了每部电影的年份和制片成本。此外,还添加了网格线和副标题来提高可读性。最终的图形如下所示:
![电影票房数据可视化图形](https://i.imgur.com/LUcK0U2.png)
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)