我正在尝试使用 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.
我只得到几个选项,比库中的要少得多。
毫不奇怪,如果我输入例如使用Combine
IntelliSense 不会出现的
Chart.Combine [ Chart.Line(msft?Difference |> Series.observations)
Chart.Line(fb?Difference |> Series.observations) ]
System.Exception:由于早期错误,无法完成操作字段、构造函数或成员“组合”未在 2,6 处定义