我在绘制折线图,有两条折线,第一条数据很全,从2016-01-01到2020-01-01,第二条折线数据是第一条折线中抽样形成,其中2017-01-01到2018-01-01段并无数据,所以我想显示2016-01-01到2017-01-01和2018-01-01到2020-01-01两段数据,中间这一段是否可用省略
时间: 2023-09-09 14:14:30 浏览: 70
能用的折线图
可以使用`fill_between`函数来实现这个效果,方法和上面的回答类似。不过需要注意的是,由于第二条折线是从第一条折线中抽样形成的,因此需要在第一条折线的横坐标范围内进行填充。
下面是一个示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x1 = np.arange('2016-01-01', '2020-01-01', dtype=np.datetime64)
y1 = np.sin(np.linspace(0, 2*np.pi, len(x1)))
x2 = x1[::7] # 从x1中每7个点抽取一个点
y2 = y1[::7]
# 隐藏2017-01-01到2018-01-01的数据
start_index = np.where(x1 == np.datetime64('2017-01-01'))[0][0]
end_index = np.where(x1 == np.datetime64('2018-01-01'))[0][0]
# 绘制折线图
fig, ax = plt.subplots()
ax.plot(x1, y1, label='Original Data')
ax.plot(x2, y2, 'o', label='Sampled Data')
# 绘制填充区域
ax.fill_between(x1[start_index:end_index], np.min(y1), np.max(y1), color='white')
ax.legend()
plt.show()
```
执行以上代码后,将会绘制出一张包含两条折线的图,其中第二条折线数据是从第一条折线中抽样形成的,2017-01-01到2018-01-01段的数据被隐藏了起来。
注意,这里使用`fill_between`函数绘制的填充区域的颜色设置为白色,是为了将该区域的颜色与背景色保持一致,从而达到隐藏数据的效果。如果需要调整填充区域的颜色,可以将`color`参数设置为其他颜色。
阅读全文