限制数据范围而不使用xlim - python,matplotlib

时间:2016-09-01 18:05:23

标签: python matplotlib

我想在同一个图上放置多行,但只使用部分可用于某些行的数据。每个数据集包含从1925年到现在的数据,我喜欢x轴显示整个范围,但我只想显示1925年至1940年的数据集A,1941年至1958年的数据集B,依此类推。 换句话说,我想设置数据本身的限制,而不是轴。

fig, ax = plt.subplots(figsize=(15,10))

plt.plot_date(DF['date'], DF['data1'], '.')
plt.plot_date(DF['date'], DF['data2'], '.')
plt.plot_date(DF['date'], DF['data3'], '.')
plt.plot_date(DF['date'], DF['data4'], '.')

ylabel('Mean Streambed Elevation (feet)')
plt.xlim('1925-01-01', '2020-01-01')

我的所有搜索都找到了使用xlim()解决的问题,但这并不是我想要的。我认为解决方案是在每条plt.plot_date行添加一些内容,但我不知道要添加什么。

1 个答案:

答案 0 :(得分:1)

有许多方法可以选择pandas数据帧的子集,假设这就是你所拥有的。

例如

data_for_plotting=DF.query("date>'1925-01-01' and date<'1940-01-01'")

然后将其而不是DF传递给其他绘图语句。

您可以查看http://pandas.pydata.org/pandas-docs/stable/indexing.html其他方法来执行相同操作。