2016-03-30 3 views
2

Ich zeichne mit XPLot ein Diagramm des Typs Tabelle. Wenn ich kein Chart.WithLables angeben, verwendet die Tabelle Column1 und Column2 als Header. Meine Serien von einem Datenrahmen (indexiert auf Spalte mit Kopf Namen erstellt wurde: Datum und hat eine Spalte mit der Überschrift Namen Schließen Hier ist der Code ist die Serie von Datenrahmen für immer.F # deedle Serie Wie bekomme ich den Namen des Schlüssels und der Serie zur Verwendung in XPlot?

`let closes = cl?Close` 

Da ich weiß, dass die erste Spalte in der Übersicht:. Tabelle ist die Serie Key und die zweite Spalte Wert (e) der Serie I die Chart.WithLabels als

hart codieren kann
// Chart type: Table of column Close 
closes 
|> Chart.Table 
|> Chart.WithOptions(Options(showRowNumber = true, page = "enable", pageSize = 20)) 
|> Chart.WithLabels ["Date"; "Close"] 

ich suche nach einem Verfahren zu extrahieren der Name des Schlüssels (Datum) und der Name der Werte (Schließen) Für einen Datenrahmen könnte ich

verwenden
cl.Columns.Keys 

, um die Spaltenüberschriften zu erhalten. Ich kann keine Entsprechung für eine Serie finden. Ich mag die Chart.WithLabels wie

Chart.WithLabels [closes.KeyName; closes.Name] 

Antwort

1

Im Gegensatz zu einem Rahmen codieren, Deedle Serie speichert keinen Namen für den Schlüssel und Werte.

Wenn Sie eine wiederverwendbare Funktion schreiben möchten, müssen Sie die Namen als zusätzliche Parameter übergeben oder Sie können einen Datenrahmen mit einer einzelnen Spalte an Ihre Funktion übergeben.

würde ich wahrscheinlich schreiben so etwas wie:

let plotSeriess label data = 
    data 
    |> Chart.Table 
    |> Chart.WithOptions(Options(showRowNumber = true, page = "enable", pageSize = 20)) 
    |> Chart.WithLabels ["Date"; label]