如何从CSV数据

时间:2015-10-20 10:40:15

标签: excel libreoffice-calc

数据的格式如下:

TESTID    Result    Timestamp
a         1         1
a         1.2       1.02
a         1.9       2.61
b         1         0
b         0.2       0.99

现在我想创建线图,在这种情况下是两个(a和b)。数据范围由第一列定义,第二列由X值和第三个Y值定义。

我正在寻找一种方法在libreoffice calc中做到这一点,但Excel或者甚至gnuplot都可以,只要它们有效。

编辑:

澄清一下,这不是一个简单的单线图。在这种情况下,有两条线路用于' a'一个用于' b'。行数未预定义,可能有任意行数。

编辑:

我很抱歉,如果这个问题太简单了,但是在我找到这种简单,不易扩展的方法之前,我浪费了太多时间。

2 个答案:

答案 0 :(得分:2)

这有点像黑客,但有效。

基本上这与其中一条评论相同,但工作量稍少。

使用以下内容从数据中创建数据透视表:

  • TESTID as columns
  • 时间戳为行
  • 结果为值

然后创建XY散点图(不是excel中的透视表格图)。使用数据透视表的内容绘制数据,跳过最后的总和,然后使用带有空单元格的矩阵。

LibreOffice正确地完成所有事情,但是使用excel还有一个步骤。

您需要告诉Excel如何处理空单元格,右键单击图形并选择"选择数据..."打开一个对话框,单击" Hidden and Empty Cells",选择"用数据线连接数据点"或者你喜欢什么,点击确定,你就完成了。

答案 1 :(得分:0)

编辑:哎呀,刚发现这个解决方案已经由@Lryl在评论中提出了......也许我应该把答案保持为插图?请评论......

使用LibreOffice,没有数据透视表,但方法相同:

  1. 导入csv:

    enter image description here

  2. D2中输入:=IF($A2="a";$B2;"");向下拖动以处理列a;

  3. 中的所有B
  4. 将公式从D2复制到E2,更改为:=IF($A2="b";$B2;"");向下拖动以处理列b;
  5. 中的所有B
  6. 现在,您与Excel数据透视表相同。将列标题ab添加到D1 / E1

    enter image description here

  7. 选择C1:E6;

  8. 使用排序的x值创建X / Y散点图:

    enter image description here

  9. 这导致:

    enter image description here