pyplot统一坐标轴左边用折线图,右边用柱状图
时间: 2023-12-03 17:45:33 浏览: 136
可以使用matplotlib库来实现统一坐标轴左边用折线图,右边用柱状图的效果。具体步骤如下:
1. 导入需要的库
```python
import matplotlib.pyplot as plt
import numpy as np
```
2. 创建画布和子图
```python
fig, ax1 = plt.subplots()
```
3. 绘制左边的折线图
```python
x = np.arange(0, 10, 0.1)
y1 = np.sin(x)
ax1.plot(x, y1, 'b-')
```
4. 设置左边坐标轴的标签、颜色和刻度
```python
ax1.set_xlabel('x')
ax1.set_ylabel('sin(x)', color='b')
ax1.tick_params('y', colors='b')
```
5. 创建右边的坐标轴
```python
ax2 = ax1.twinx()
```
6. 绘制右边的柱状图
```python
y2 = np.random.randint(low=0, high=10, size=len(x))
ax2.bar(x, y2, alpha=0.5, color='r')
```
7. 设置右边坐标轴的标签、颜色和刻度
```python
ax2.set_ylabel('y', color='r')
ax2.tick_params('y', colors='r')
```
8. 显示图形
```python
plt.show()
```
完整代码如下:
```python
import matplotlib.pyplot as plt
import numpy as np
fig, ax1 = plt.subplots()
x = np.arange(0, 10, 0.1)
y1 = np.sin(x)
ax1.plot(x, y1, 'b-')
ax1.set_xlabel('x')
ax1.set_ylabel('sin(x)', color='b')
ax1.tick_params('y', colors='b')
ax2 = ax1.twinx()
y2 = np.random.randint(low=0, high=10, size=len(x))
ax2.bar(x, y2, alpha=0.5, color='r')
ax2.set_ylabel('y', color='r')
ax2.tick_params('y', colors='r')
plt.show()
```
运行结果如下所示:
![image.png](attachment:image.png)