我想在我的项目中使用FSharpChart和fsx脚本文件.我使用Nuget下载并引用了MSDN.FSharpChart.dll,我的代码如下所示
#r @"..\packages\MSDN.FSharpChart.dll.0.60\lib\MSDN.FSharpChart.dll"
open System.Drawing
open MSDN.FSharp.Charting
[for x in 0.0 .. 0.1 .. 6.0 -> sin x + cos (2.0 * x)]
|> FSharpChart.Line
Run Code Online (Sandbox Code Playgroud)
路径是正确的,因为VS 2012为我提供了intellisense并且知道MSDN.FSharp命名空间.问题是当我在FSI中运行此脚本时,没有显示任何内容.
怎么了?
在F#Interactive中运行时,我希望以下代码创建一个简单的饼图并将其保存到磁盘:
let pie = FSharpChart.Pie([("Apples",1);("Oranges",2);("Bananas",3)])
FSharpChart.SaveAs "test.png" ChartImageFormat.Png pie
Run Code Online (Sandbox Code Playgroud)
但是,实际保存在"test.png"中的是一个空白图像.如果我将图表管道输入FShartChart.SaveAs函数,也会发生同样的情况.但是,如果我首先只执行图表创建代码并在手动执行SaveAs之前给图表提供时间,则图像会按预期保存.
有没有办法阻止对FSharpChart.Pie的调用,直到渲染完成?我在Visual Studio 2013中使用FSharpChart.fsx版本0.60.
我不明白如何创建图表控件并将图表放在现有表单中.我在网上找到的所有例子都以新的形式显示图表,但我想将图表添加到我现有的一个表格中.
我在考虑这样的事情:
let form = new Form(Text="My form")
let lbl = new Label(Text="my label")
let chart = Chart.Area ["a", 10; "b", 20]
form.Controls.Add lbl
form.Controls.Add chart
// ---> The type 'ChartTypes.GenericChart' is not compatible with the type 'Control'
Application.Run(form)
Run Code Online (Sandbox Code Playgroud)
谢谢!