使用 Xplot 绘制 deedle 数据框的数据
Plotting data of deedle data frame with Xplot plotly
我有一个 Deedle 数据框,其中 DateTime 值作为键,两列包含数据。现在我想用 Plotly 的散点图绘制第 1 列的数据。
我正在使用 FSLab,其中包含 XPlot.Plotly 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
我收到此错误:“未定义字段、构造函数或成员 'Plot'。
我是不是遗漏了什么?
不确定 XPlot 的最新版本是什么,但我在 nuget 中获得了 1.4.2。所以,为了简单起见,我这次避免了所有 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,简单的方法是替换 ...\FSLAB\packages\XPlot.Plotly\lib\net45
中的 XPlot.Plotly.dll 和 xml 文件。
然后你可以调用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
我有一个 Deedle 数据框,其中 DateTime 值作为键,两列包含数据。现在我想用 Plotly 的散点图绘制第 1 列的数据。
我正在使用 FSLab,其中包含 XPlot.Plotly 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
我收到此错误:“未定义字段、构造函数或成员 'Plot'。
我是不是遗漏了什么?
不确定 XPlot 的最新版本是什么,但我在 nuget 中获得了 1.4.2。所以,为了简单起见,我这次避免了所有 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,简单的方法是替换 ...\FSLAB\packages\XPlot.Plotly\lib\net45
中的 XPlot.Plotly.dll 和 xml 文件。
然后你可以调用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