Построение данных фрейма данных deedle с графиком Xplot

У меня есть фрейм данных Deedle со значениями DateTime в качестве ключа и два столбца с данными. Теперь я хочу построить данные столбца 1 с помощью точечной диаграммы от Plotly.

Я использую FSLab и есть XPlot. Включено 1.3.1.

Но я не могу использовать Plotly:

open XPlot.Plotly.Graph
open XPlot.Plotly
open XPlot.Plotly.HTML

let dataFrame = ...

Scatter(
  x = dataFrame.ColumnKeys,
  y = dataFrame.GetColumn("col1")
)
|> Chart.Plot
|> Chart.Show

Я получаю эту ошибку: "Поле, конструктор или элемент" График "не определен.

Я что-то упустил?

1 ответ

Решение

Не уверен, что это последняя версия XPlot, но я получаю 1.4.2 в Nuget. Итак, чтобы упростить задачу, на этот раз я избежал магии FSLab:

//#load @"..\..\FSLAB\packages\FsLab\FsLab.fsx"
#r @"..\packages\XPlot.Plotly.1.4.2\lib\net45\XPlot.Plotly.dll"
#r @"..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll"
open XPlot.Plotly
open XPlot.Plotly.Graph

let layout = Layout(title = "Basic Bar Chart")

["giraffes", 20; "orangutans", 14; "monkeys", 23]
|> Chart.Bar
|> Chart.WithLayout layout
|> Chart.WithHeight 500
|> Chart.WithWidth 700
|> Chart.Show


let lineTrace1 =
    Scatter(
        x = [1; 2; 3; 4],
        y = [10; 15; 13; 17],
        mode = "markers"
    )

lineTrace1 |> Chart.Plot   |> Chart.Show

Теперь, это будет строить графики в браузере. Я верю, что вы можете связать его с WPF или winforms.

редактировать

Поскольку это работает для вас, но вам все еще нужен FSLab, самый простой выход - заменить файл XPlot.Plotly.dll и XML в ...\FSLAB\packages\XPlot.Plotly\lib\net45,

Тогда вы можете вызвать XPlot.Plotly без необходимости ссылки непосредственно на DLL.

#load @"..\..\FSLAB\packages\FsLab\FsLab.fsx"
open XPlot.Plotly
open XPlot.Plotly.Graph
open XPlot.Plotly.Html

let layout = Layout(title = "Basic Bar Chart")
["giraffes", 20; "orangutans", 14; "monkeys", 23]
|> Chart.Bar
|> Chart.WithLayout layout
|> Chart.WithHeight 500
|> Chart.WithWidth 700
|> Chart.Show
Другие вопросы по тегам