Deedle - 绘制分组数据

时间:2014-04-28 15:30:45

标签: charts f# deedle

我想绘制我在deedle frame中保存的分组数据。

e.g。从:

开始
let fr =
    Frame.ofColumns [
        "name" =?> series [(1, "a"); (2, "b"); (3, "c"); (4, "c"); (5, "c")]
        "data" =?> series [(1, 11.); (2, 12.); (3, 13.); (4, 10.); (5, 7.)]
        "order" =?> series [(1, 1); (2, 1); (3, 1); (4, 2); (5, 3)]
    ]
    |> Frame.groupRowsByString "name"

我想以某种方式将它传递给Chart.Line + Chart.Combine并最终得到一个图表,显示每个分组系列的趋势。

是否有解决方案,或者我需要手动将帧解包到观察列表中?

1 个答案:

答案 0 :(得分:1)

我是否正确理解您是否希望根据名称为每个组绘制折线图(即名称为a的一个折线图,一个名称为b等等)?

在这种情况下,您可以使用Frame.nest创建一系列框架 - 外部系列将由索引的第一部分(名称)编制索引,嵌套框架将包含每个组的值

然后你可以得到观察结果(组名和一个框架),并使用Chart.Line绘制每个组的值,然后组合这样的折线图序列:

fr 
|> Frame.nest
|> Series.observations
|> Seq.map (fun (k, frame) -> Chart.Line(frame?data, Name=k)) 
|> Chart.Combine
|> Chart.WithLegend()