1

我正在尝试使用 F# Charting:数据可视化库 https://fslab.org/FSharp.Charting/

我遇到了基本问题我已经在 GitHub 上发布了我的问题,但我在这里交叉发布 https://github.com/fslaborg/FSharp.Charting/issues/126

我在最近的 iMAC 上的 MacOS Sierra 上运行 Xamarin 6.3

我已经加载了 FSharp.Charting.Gtk (0.90.14)

顺便说一句open FSharp.Charting,我需要使用还是open FSharp.Charting.Gtk

doc说第一个,FSI在第二个命令之后不会立即抱怨,但是如果我尝试一种方法Chart.Line,例如,我会收到消息

System.Exception:操作无法完成由于早期错误命名空间或模块“图表”未定义在 3,0

1)编译后执行时出现问题

open System

open FSharp.Charting

let ch = Chart.Line [ for x in 0 .. 10 -> x, x*x ]
ch.ShowChart()


[<EntryPoint>]
let main args =
    printfn "Arguments passed to function : %A" args
    printfn "hello world"
    0

这就是我得到的

错误日志的开头看起来像

上次登录:Thu Apr 20 00:55:57 on ttys000 59x159x64x204:~ ...$ clear; cd "/Users/.../bin/Debug"; 导出 PKG_CONFIG_PATH="/Applications/Xamarin Studio.app/Contents/Resources/lib/pkgconfig:/Library/Frameworks/Mono.framework/Versions/4.8.1/lib/pkgconfig"; 导出 PKG_CONFIG_LIBDIR=""; export PATH="/Library/Frameworks/Mono.framework/Commands:/Applications/Xamarin Studio.app/Contents/Resources:/Applications/Xamarin Studio.app/Contents/MacOS:/usr/bin:/bin:/usr/ sbin:/sbin"; 导出 MONO_GAC_PREFIX="/Applications/Xamarin Studio.app/Contents/Resources"; 导出 XBUILD_FRAMEWORK_FOLDERS_PATH=""; "/Library/Frameworks/Mono.framework/Versions/4.8.1/bin/mono32" --debug "/Users/.../bin/Debug/The42project.exe" ; 回声$?> /var/文件夹/gm/z065gk616xg6g0xgn4c7_bvc0000gn/T/tmp1493d63。时间;回声; read -p '按任意键继续...' -n1; 出口

(进程:14805):GLib-GObject-WARNING **:无效(NULL)指针实例

(进程:14805):GLib-GObject-CRITICAL **:gulong g_signal_connect_data(gpointer,const gchar *,GCallback,gpointer,GClosureNotify,GConnectFlags):断言“G_TYPE_CHECK_INSTANCE(实例)”失败

(进程:14805):Gtk-WARNING **:未设置 GtkWindow 的屏幕;在使用该窗口之前,您必须始终为 GtkWindow 设置一个屏幕

(进程:14805):Gdk-CRITICAL **:GdkColormap *gdk_screen_get_default_colormap(GdkScreen *):断言“GDK_IS_SCREEN(屏幕)”失败

完整的错误消息在这里 https://gist.github.com/FaguiCurtain/a70fb8d894199f0a65de3a9006fb4758

2) 在 FSI 中执行时的问题

[Loading /Users/.../packages/FSharp.Charting.Gtk.0.90.14/FSharp.Charting.Gtk.fsx]
 namespace FSI_0001.FSharp.Charting
   val verifyMac : unit -> bool
   val isMac : bool
   module FsiAutoShow = begin
   end
 The search directory '/usr/lib/mono/gtk-sharp-2.0' could not be found at 28,0
 The search directory '/usr/lib/mono/gtk-sharp-2.0' could not be found at 28,0

open FSharp.Charting;;

Chart.Line [ for x in 0 .. 10 -> x, x*x ];;
 Binding session to '/Users/.../packages/FSharp.Charting.Gtk.0.90.14/lib/net40/OxyPlot.dll'...
 Binding session to '/Users/.../packages/FSharp.Charting.Gtk.0.90.14/lib/net40/OxyPlot.GtkSharp.dll'...
 val it : ChartTypes.GenericChart = (Chart)

没有按钮的图表

在 FSI 中,图表窗口会立即打开,但实际显示图表需要 20-30 秒。需要这么长时间正常吗?当我将鼠标悬停在图表上时,我看不到坐标,这是正常的吗?我无法关闭此窗口。正如您在屏幕截图中看到的,图表窗口左上角的 3 个按钮未激活。我找不到让这个窗口消失的方法。正常吗?

谢谢

3) 在 FSI 中,如果我键入以开头的命令,Chart.我只得到几个选项,比库中的要少得多。

毫不奇怪,如果我输入例如使用CombineIntelliSense 不会出现的

     Chart.Combine   [ Chart.Line(msft?Difference |> Series.observations) 
                       Chart.Line(fb?Difference |> Series.observations) ]

System.Exception:由于早期错误,无法完成操作字段、构造函数或成员“组合”未在 2,6 处定义

在此处输入图像描述

4

0 回答 0