绘制曲线、子图方式绘制电影票房条形图 绘制四根曲线,9个刻度标签;使用子图方式绘制电影票房条形图; 使用子图绘制方式,将这两个图绘制在一个画板上;
时间: 2024-10-13 08:05:55 浏览: 38
在Python的Matplotlib库中,可以使用subplots函数来创建子图并分别绘制曲线和条形图。对于电影票房数据,我们可以按照以下步骤操作:
1. **绘制曲线**:
```python
import matplotlib.pyplot as plt
import numpy as np
# 假设我们有电影票房时间序列数据
t = np.arange(0, 10, 0.1) # 时间点
curve_data = [np.sin(t), np.cos(t), np.exp(t)] # 几种曲线的数据
fig, ax1 = plt.subplots()
for i, data in enumerate(curve_data):
color = 'tab:blue', 'tab:orange', 'tab:green'
ax1.plot(t, data, label=f'曲线{i+1}', color=color[i])
ax1.set_xlabel('时间')
ax1.set_ylabel('票房', color='tab:blue')
ax1.tick_params(axis='y', labelcolor='tab:blue')
ax1.legend()
```
2. **绘制电影票房条形图**:
```python
box_office = [50, 60, 70, 80, 90, 100, 110, 120, 130] # 票房数据
bars = np.arange(len(box_office)) # 刻度位置
ax2 = ax1.twinx() # 创建第二个y轴
ax2.bar(bars, box_office, color='tab:red') # 条形图
ax2.set_ylabel('票房(票房条形图)', color='tab:red')
ax2.yaxis.tick_right() # 右侧显示条形图的y轴刻度
ax2.grid(False) # 条形图不需要网格线
# 添加横坐标刻度标签
ax1.set_xticks(bars)
ax1.set_xticklabels(['上映日期1', '上映日期2', '...', '上映日期9'])
```
3. **合并两个子图到一个画布**:
```python
fig.tight_layout() # 自动调整子图之间的空间
fig.show() # 显示图形
```
阅读全文