【发布时间】:2016-02-27 19:59:39
【问题描述】:
我在一个月(30 天)内每 5 分钟收集一次传感器数据。 这意味着,我有一个时间序列数据,总共有 288*30 个数据点。
我想对数据进行散点图(x 轴:时间,y 轴:传感器值)。 以下代码用于测试。
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
# generate time series randomly (length: 1 month)
rng=pd.date_range("2015-11-11",periods=288*30,freq="5min")
ts=pd.Series(np.random.randn(len(rng)),rng)
nr=3
nc=1
fig=plt.figure(1)
fig.subplots_adjust(left=0.04,top=1,bottom=0.02,right=0.98,wspace=0.1,hspace=0.1)
for i in range(3):
ctr=i+1
ax=fig.add_subplot(nr,nc,ctr)
ax.scatter(ts.index,ts.values)
ax.set_xlim(ts.index.min(),ts.index.max())
plt.show()
我生成了具有 288*30 观察值的随机时间序列数据,并尝试将其绘制在散点图中。但是,如您所见,无法分析该数字。
我想重绘它,满足以下条件:
我想要一个放大版的图。换句话说,一次显示某个时间范围(例如,2~3小时)的部分数据点。那么,相邻点之间应该有足够的空间。
我想将图形保存为 png 或 pdf 文件。然后,如果我打开文件,图像(或 pdf)查看器会有一个水平滚动条,让我可以浏览整个图形。
有谁可以解决吗?
我认为对于 matplotlib 专家来说并不难,但对我这个初学者来说却相当困难。
【问题讨论】:
-
重要的是要指定您想要一个水平放大版本的图,而不是双向放大。
标签: python matplotlib time-series visualization scatter-plot