如何从 CSV 数据创建图表
How to create Graphs from CSV data
数据格式如下:
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 都可以,只要它们有效。
编辑:
澄清一下,这不是简单的单线图。在本例中,有 2 行,一行用于 'a',另一行用于 'b'。行数未预定义,可能有任意行数。
编辑:
如果这个问题太简单了,我很抱歉,但我在这上面浪费了太多时间,然后才找到简单的、非缩放的方法来做到这一点。
这有点乱七八糟,但有效。
基本上这与其中一条评论相同,但少了一些工作。
根据数据创建一个枢轴 table,其中:
- TESTID 作为列
- 时间戳为行
- 结果作为值
然后创建 XY 散点图(不是 excel 中的枢轴 table 图)。使用 Pivot 的内容 table 绘制数据,跳过末尾的 Sum 并使用带有空单元格的矩阵。
LibreOffice 可以正确完成所有操作,但 excel 还需要更进一步。
您需要告诉 Excel 如何处理空单元格,右键单击图表并选择 "Select Data..." 将打开一个对话框,单击 "Hidden and Empty Cells"、select "Connect data points with line" 或任何你喜欢的,点击确定,你就完成了。
编辑:哎呀,刚刚发现这个解决方案已经由@Lryl 在评论中提出......也许我应该保留答案作为说明`?请评论...
使用 LibreOffice,不使用数据透视表,但方法相同:
导入 csv:
在D2
中输入:=IF($A2="a";$B2;"")
;向下拖动以处理 B
;
列中的所有 a
值
- 将公式从
D2
复制到E2
,更改为:=IF($A2="b";$B2;"")
;向下拖动以处理 B
; 列中的所有 b
值
现在,您拥有与 Excel 相同的支点 table。添加列 headers a
和 b
到 D1
/ E1
:
Select C1:E6
;
创建 X/Y 散点图,x 值已排序:
这导致:
数据格式如下:
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 都可以,只要它们有效。
编辑:
澄清一下,这不是简单的单线图。在本例中,有 2 行,一行用于 'a',另一行用于 'b'。行数未预定义,可能有任意行数。
编辑:
如果这个问题太简单了,我很抱歉,但我在这上面浪费了太多时间,然后才找到简单的、非缩放的方法来做到这一点。
这有点乱七八糟,但有效。
基本上这与其中一条评论相同,但少了一些工作。
根据数据创建一个枢轴 table,其中:
- TESTID 作为列
- 时间戳为行
- 结果作为值
然后创建 XY 散点图(不是 excel 中的枢轴 table 图)。使用 Pivot 的内容 table 绘制数据,跳过末尾的 Sum 并使用带有空单元格的矩阵。
LibreOffice 可以正确完成所有操作,但 excel 还需要更进一步。
您需要告诉 Excel 如何处理空单元格,右键单击图表并选择 "Select Data..." 将打开一个对话框,单击 "Hidden and Empty Cells"、select "Connect data points with line" 或任何你喜欢的,点击确定,你就完成了。
编辑:哎呀,刚刚发现这个解决方案已经由@Lryl 在评论中提出......也许我应该保留答案作为说明`?请评论...
使用 LibreOffice,不使用数据透视表,但方法相同:
导入 csv:
在
D2
中输入:=IF($A2="a";$B2;"")
;向下拖动以处理B
; 列中的所有 - 将公式从
D2
复制到E2
,更改为:=IF($A2="b";$B2;"")
;向下拖动以处理B
; 列中的所有 现在,您拥有与 Excel 相同的支点 table。添加列 headers
a
和b
到D1
/E1
:Select
C1:E6
;创建 X/Y 散点图,x 值已排序:
a
值
b
值
这导致: