用python绘制熊猫图案_python – 熊猫:如何在彼此之上绘制年度数据

我有一系列由时间值(浮点数)索引的数据,我想要获取系列的块并将它们绘制在一起.例如,假设我在20周内每隔10分钟拍卖一次股票价格,我希望通过绘制20行股票价格来看每周模式.所以我的X轴是一周,我有20行(对应于本周的价格).

更新

索引不是均匀间隔的值,而是浮点数.它是这样的:

t = np.arange(0,12e-9,12e-9/1000.0)

noise = np.random.randn(1000)/1e12

cn = noise.cumsum()

t_noise = t+cn

y = sin(2*math.pi*36e7*t_noise) + noise

df = DataFrame(y,index=t_noise,columns=["A"])

df.plot(marker='.')

plt.axis([0,0.2e-8,0,1])

因此索引不是均匀间隔的.我正在处理来自模拟器的电压与时间数据.我想知道如何创建一个时间窗口T,并将df拆分为T long的块并将它们绘制在彼此之上.因此,如果数据长度为20 * T,那么在同一个图中我将有20行.

对困惑感到抱歉;我使用股票类比认为它可能有所帮助.

解决方法:

假设以pandas.TimeSeries对象为起点,您可以进行分组

ISO周数和ISO工作日的元素

datetime.date.isocalendar().以下声明忽略了ISO年份,汇总了每一天的最后一个样本.

In [95]: daily = ts.groupby(lambda x: x.isocalendar()[1:]).agg(lambda s: s[-1])

In [96]: daily

Out[96]:

key_0

(1, 1) 63

(1, 2) 91

(1, 3) 73

...

(20, 5) 82

(20, 6) 53

(20, 7) 63

Length: 140

可能有更简洁的方法来执行下一步,但目标是将索引从元组数组更改为MultiIndex对象.

In [97]: daily.index = pandas.MultiIndex.from_tuples(daily.index, names=['W', 'D'])

In [98]: daily

Out[98]:

W D

1 1 63

2 91

3 73

4 88

5 84

6 95

7 72

...

20 1 81

2 53

3 78

4 64

5 82

6 53

7 63

Length: 140

最后一步是从工作日“卸下”

MultiIndex,为每个工作日创建列,并用缩写替换工作日数字,以提高可读性.

In [102]: dofw = "Mon Tue Wed Thu Fri Sat Sun".split()

In [103]: grid = daily.unstack('D').rename(columns=lambda x: dofw[x-1])

In [104]: grid

Out[104]:

Mon Tue Wed Thu Fri Sat Sun

W

1 63 91 73 88 84 95 72

2 66 77 96 72 56 80 66

...

19 56 69 89 69 96 73 80

20 81 53 78 64 82 53 63

要为每周创建一个折线图,请调换数据框,因此列是周数,行是工作日(请注意,可以通过取消堆周数,代替工作日,在上一步中避免此步骤)和调用图.

grid.T.plot()

标签:python,pandas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值