XPlot пытается визуализировать данные - PullRequest
0 голосов
/ 28 октября 2018

Мне очень трудно пытаться визуализировать некоторые данные с помощью f #.Я пытаюсь добиться этого в среде Linux, используя jupyter notebooks, который я использую на localhost.Я следую этой статье .Все вроде бы нормально, мне удалось загрузить все необходимые файлы скриптов, такие как MathNet.Numerics и XPlot.Я не получаю никаких ошибок, мой терминал также в порядке, ядро ​​на месте.Интересно, почему я не получаю повторное отображение графика после запуска моего кода?

It only says that I get back Xplot.Plotly.PlotlyChart

Это только говорит о том, что я возвращаюсь Xplot.Plotly.PlotlyChart, как насчетфактический график?Я не уверен, что этого будет достаточно, чтобы помочь мне, если нет, дайте мне знать и заполнить другую информацию.Я также пробовал разные браузеры, но это не помогло.

Фактический код:

#load @"<project-root>/.paket/load/net45/MathNet.Numerics.fsx"
#load @"<project-root>/.paket/load/net45/MathNet.Numerics.FSharp.fsx"
#load @"<project-root>/.paket/load/net45/XPlot.Plotly.fsx"


open System
open System.Linq
open MathNet.Numerics.Distributions
open MathNet.Numerics.LinearAlgebra
open XPlot.Plotly

let n = 40
let nbsim = 1000
let lambda = 0.2
let randomSeed = 1111

let exponential = Exponential.Samples(new Random(randomSeed), lambda) |> Seq.take (n* nbsim) |> List.ofSeq

let m = Matrix<float>.Build.DenseOfRowMajor(nbsim, n, exponential)

let means = m.RowSums() / (float n)
means.Average()

let historyTrace = 
  Histogram(
    x = means,
    xbins = 
      Xbins(
        start = 2.8,
        ``end`` = 7.75,
        size = 0.08
      ),
    marker =
      Marker(
        color = "yellow",
        line =
          Line(
            color = "grey",
            width = 1
          )
      ),
    opacity = 0.75,
    name = "Exponental distribution"      
  ) :> Trace

let meanTrace = 
  Scatter(
    x = [5; 5],
    y = [0; 60],
    name = "Theorical mean"
  ) :> Trace

// Or plain historyTrace below
[historyTrace; meanTrace]
|> Chart.Plot
|> Chart.WithXTitle("Means")
|> Chart.WithYTitle("Frequency")
|> Chart.WithTitle("Distribution of 1000 means of exponential distribution")

Обратите внимание, что #load операторы включают <project-root> заполнитель.Я использую Paket для генерации скриптов для #load.

1 Ответ

0 голосов
/ 28 октября 2018

Это сработало для меня в F # Azure Notebook.

Обязательно включите это в ячейку, прежде чем вызывать диаграмму

#load "XPlot.Plotly.Paket.fsx"
#load "XPlot.Plotly.fsx"
open XPlot.Plotly

Это цитата из FSharp для Azure Notebooks:

Обратите внимание, что нам нужно было # загрузить два вспомогательных сценария, чтобы загрузить нужные нам сборки и включить отображение на наших графиках Display.Первый загружает и устанавливает необходимые пакеты Paket, а второй настраивает поддержку отображения.

Ключевая строка для вас: #load "XPlot.Plotly.fsx" Именно она позволяет отображать диаграмму в блокноте..

Это мой код в записной книжке Azure:

// cell 1
#load "XPlot.Plotly.Paket.fsx"
#load "XPlot.Plotly.fsx"

// cell 2
Paket.Package [ "MathNet.Numerics"
                "MathNet.Numerics.FSharp"  ]
#load "Paket.Generated.Refs.fsx"  

// cell 3
open System
open System.Linq
open MathNet.Numerics.Distributions
open MathNet.Numerics.LinearAlgebra
open XPlot.Plotly

let n = 40
let nbsim = 1000
let lambda = 0.2
let randomSeed = 1111

let exponential = Exponential.Samples(new Random(randomSeed), lambda) |> Seq.take (n* nbsim) |> List.ofSeq

let m = Matrix<float>.Build.DenseOfRowMajor(nbsim, n, exponential)
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...