使用matplotlib绘制图形,其中一列具有特定值

时间:2013-05-17 13:55:07

标签: csv matplotlib graph

我有一个包含以下数据的csv文件。

Time,Type,RX,TX
2013-05-16 18:43:48,UP,0.72,10.86
2013-05-16 18:43:51,DOWN,68.74,1.67
2013-05-16 18:44:06,DOWN,104.01,2.52
2013-05-16 18:43:48,UP,1.21,10.94
2013-05-16 18:44:25,DOWN,104.07,2.54

我想要两个单独的图表:

  • RXTXType=UP
  • 的时间对比
  • RXTXType=DOWN
  • 的时间对比

这是我的尝试。我的问题是两个图都包含所有数据。

plot = matplotlib.mlab.csv2rec(data_file)
fig = matplotlib.pyplot.figure()
subplot1 = matplotlib.pyplot.subplot(1,2,1)
subplot2 = matplotlib.pyplot.subplot(1,2,2)
subplot1.plot(plot.time, plot.rx)
subplot1.plot(plot.time, plot.tx)
subplot2.plot(plot.time, plot.rx)
subplot2.plot(plot.time, plot.tx)

我有什么想法可以做到这一点吗?

1 个答案:

答案 0 :(得分:3)

您可以先将(名称不详的)plot数组过滤为两个独立的数组:

UP_data = plot[plot.type == 'UP']
DOWN_data = plot[plot.type == 'DOWN']

然后分别绘制每个:

subplot1.plot(UP_data.time, UP_data.rx)
subplot1.plot(UP_data.time, UP_data.tx)
subplot2.plot(DOWN_data.time, DOWN_data.rx)
subplot2.plot(DOWN_data.time, DOWN_data.tx)