2016-10-10 78 views
1

我有一個Deedle數據框,DateTime值爲key,兩列爲數據。現在我想用Plotly中的Scatter圖表繪製第1列的數據。用Xplot繪製出deedle數據幀的數據圖

我正在使用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 

我得到這個錯誤:「這個領域,構造或成員‘情節’沒有定義

難道我失去了一些東西?

+0

您是否嘗試過直接引用XPLot? – s952163

+1

好吧,它有點激烈,但你可以用1.4.2版本替換Fslab的xplotly目錄中的dll。然後它工作。我沒有編輯其他腳本。 – s952163

回答

1

不知道什麼是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,討巧的就是更換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 
+1

我也試過了,它使用最新版本的XPlot庫。但是如果我不使用Fslab腳本,我會遇到很多其他錯誤。例如,我必須爲我自己引用很多系統包(如System.Runtime)。我不知道爲什麼,因爲在Fslab腳本中沒有提及這些dll。 – CPA

+0

@cpa這些錯誤可能來自您可能從FSLab使用的其他東西,如Deedle。也許這意味着Xplotly和FSLab之間有一些不兼容。你需要使用Plotly嗎?當我檢查(從FSLAB腳本)時,Xplot中的Googlecharts工作。 – s952163