多线条共用x轴,python代码
时间: 2023-04-11 14:01:38 浏览: 223
你好,我可以回答这个问题。在Python中,可以使用matplotlib库中的subplot函数来实现多线条共用x轴的效果。具体实现方法可以参考以下代码:
```
import matplotlib.pyplot as plt
# 创建一个figure对象
fig = plt.figure()
# 创建两个子图,共用x轴
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2, sharex=ax1)
# 绘制两条线条
ax1.plot([1, 2, 3], [4, 5, 6])
ax2.plot([1, 2, 3], [2, 4, 6])
# 显示图像
plt.show()
```
这段代码中,我们首先创建了一个figure对象,然后使用add_subplot函数创建了两个子图,其中第二个子图使用了sharex参数来共用第一个子图的x轴。最后,我们在两个子图中分别绘制了一条线条,并使用plt.show()函数显示图像。
相关问题
matplotlib多线条共用x轴
可以使用plt.subplots()函数创建多个子图,每个子图都共用同一个x轴,然后在每个子图中分别绘制不同的线条。具体代码如下:
```python
import matplotlib.pyplot as plt
# 创建两个子图,共用同一个x轴
fig, ax = plt.subplots(2, 1, sharex=True)
# 在第一个子图中绘制线条1
ax[0].plot([1, 2, 3], [4, 5, 6], label='Line 1')
# 在第二个子图中绘制线条2
ax[1].plot([1, 2, 3], [2, 4, 6], label='Line 2')
# 添加图例和标签
ax[0].legend()
ax[1].legend()
ax[1].set_xlabel('X Label')
ax[0].set_ylabel('Y Label 1')
ax[1].set_ylabel('Y Label 2')
# 显示图形
plt.show()
```
这段代码会创建两个子图,分别绘制线条1和线条2,两个子图共用同一个x轴。最后添加图例和标签,并显示图形。
8.创建一个 2 X 1子图绘图模式,每个子图上依次绘制 NumPy库1000个正态随机数(randn)的累计和,图形颜色均为黑色,线形分别为实线和点线。x轴共用坐标轴。
好的,您的第一个问题是如何创建一个 2x1 的子图并绘制 NumPy 库中的 1000 个正态随机数(randn)的累计和,线条颜色均为黑色,线形分别为实线和点线,并共用坐标轴。
下面是 Python 代码来实现这个问题:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成 1000 个正态随机数
data = np.random.randn(1000)
# 创建一个 2x1 的子图
f, axarr = plt.subplots(2, 1)
# 在第一个子图上绘制实线图和累积和
axarr[0].plot(data.cumsum(), color='black', linestyle='-')
# 在第二个子图上绘制点线图和累积和
axarr[1].plot(data.cumsum(), color='black', linestyle=':')
# 共享 x 轴
plt.subplots_adjust(hspace=0.4) # 调整子图之间的垂直间距
plt.setp([a.get_xticklabels() for a in f.axes[:-1]], visible=False) # 隐藏上面的子图的 x 轴标签
plt.show() # 显示绘图结果
```
代码解释:
首先,我们使用 NumPy 库中的 ``np.random.randn(1000)`` 函数生成了 1000 个正态随机数,存储在数据变量 ``data`` 中。接着,我们使用 ``matplotlib.pyplot.subplots`` 函数创建了一个 2x1 的子图,并将返回的子图对象存储在 ``f`` 和 ``axarr`` 变量中。然后,我们在第一个子图上绘制实线图和累计和,使用黑色颜色和实线样式,使用 ``data.cumsum()`` 函数计算数值的累计和。接着,在第二个子图上绘制点线图和累计和,使用黑色颜色和点线样式,也使用 ``data.cumsum()`` 函数计算数值的累计和。最后,我们共享 x 轴,使用 ``plt.subplots_adjust`` 函数调整子图之间的垂直间距,并使用 ``plt.setp`` 函数隐藏上面的子图的 x 轴标签。最后,使用 ``plt.show()`` 函数显示绘图结果。
希望这个回答对您有所帮助!
阅读全文
相关推荐









