第2列中的我的数据(此处以标题名N显示)包括从0到15或从0到7等重复的循环数。第3列CN由CN = np.cumsum(np.abs(np.diff(N)))
计算
我想根据CN值从数据中获取一个切片。从值1到14,从值29到36,依此类推,然后绘制N和CN。 我面临的问题是,在打印之前,我必须手动检查切片的CN值。我想要一个程序,它可以在CN值突然跳跃时对数据进行切片,然后进行绘图
+-------+-----+----+-------+
| index | N | CN | Vdiff |
+-------+-----+----+-------+
| 524 | 2 | 1 | 0.0 |
| 525 | 2 | 1 | 0.0 |
| 526 | 2 | 1 | 0.0 |
| . | | | |
| . | | | |
| 5900 | 15 | 14 | 0.0 |
| 5901 | 15 | 29 | 0.1 |
| 5902 | 0 | 29 | 0.0 |
| . | | | |
| . | | | |
| 33001 | 7 | 36 | 0.0 |
| 33002 | 7 | 36 | 0.0 |
| 33003 | 7 | 43 | 0.1 |
| 33004 | 0 | 43 | 0.0 |
+-------+-----+----+-------+
import matplotlib.pyplot as plt
flt1 = (data['CN'] > 0) & (data['CN'] <= 14)
Amp1 = data.loc[flt1]
flt2 = (data['CN'] > 30) & (data['CN'] <= 36)
Amp2 = data.loc[flt2]
Amp1.plot(x='N',y='CN',kind='line')
如果我正确理解了你的问题,你想在CN中的跳跃之间生成情节。然后,下面的代码应该可以做到这一点:
让我知道这是否产生了你想要的结果
编辑:根据注释中的要求,这里是与前面相同的
for
循环,但使用matplotlib打印而不是直接从数据框打印:相关问题 更多 >
编程相关推荐