我有一个时间序列,在一年数组大小(365、10000)的过程中,该变量的每日值将超过 10,000 个。因为我将拥有如此多的数据(许多变量的许多时间序列),我希望只保存百分位数(0、10、20、...、90、100)并稍后在绘图中使用它们来设置颜色渐变显示值的密度(显然在中位数处最暗,在最小值和最大值处最亮)。这样做的目的是避免保存的模拟输出中的文件过大,因为我将处理数百万个输出。如果我能让它工作,这将显着减少文件大小。
我能够计算样本数据集的百分位数(目前仅使用 50 个值)并按附图所示绘制它们(使用大小为 365,11 的数组)。我将如何使用这些信息来设置显示颜色渐变(或值密度)的图?这可能吗?还是有其他方法可以解决它?我正在使用matplotlib ...
import numpy as np
import matplotlib.pyplot as plt
SampleData=(375-367)*np.random.random_sample((365, 50))+367
SDist=np.zeros((365,11))
for i in range(11):
for t in range(365):
SDist[t,i]=np.percentile(SampleData[t,:],i*10)
fig, (ax1) = plt.subplots(nrows=1, ncols=1, sharex=True, figsize=(8,4))
ax1.plot(np.arange(0,365,1), SDist)
ax1.set_title("SampleData", fontsize=15)
ax1.tick_params(labelsize=11.5)
ax1.set_xlabel('Day', fontsize=14)
ax1.set_ylabel('SampleData', fontsize=14)
fig.tight_layout()
编辑
这是我想要做的一个很好的例子(尽管显然它与我的示例数据看起来不同) - 我认为它类似于风扇图表: