您的位置:首页 > 其它

FSharpChart 图表应用

2011-12-30 10:30 393 查看
大家好,我是Keith Battocchi,我一直致力于如何让F#更容易地实现数据化编程。在我发布的第一个Blog中,我强调了本月早些时候Don 在他的Blog中已经提到的FSharpChart包中的一些基本功能。正像Don所提到的,这个库包含了位于System.Windows.Forms.DataVisualization.Charting命名空间中类型的F#友好包,这让F# interactive 更容易的和图表数据进行交互(您也可以 在MSDN图表控件部分中看到关于基本控件的详细信息,还有教程)。只要加载脚本库:FSharpChart.fsx,打开Samples.Charting 命名空间,就可以开始了。

#load "FSharpChart.fsx"

open Samples.Charting

基本特点:

FSharpChart支持System.Windows.Forms.DataVisualization.Charting命名空间中所有的图表类型,如常见的线形图、条形图、更奇特的Kagi和Renko图表,等等。每种类型的图表可用通过使用FSharpChart类型中的静态方法来创建, 您可以通过IntelliSense去浏览:



这种方法可以更容易地把数据直接导入到图表中。另外,FsharpChart库为F# Interactive增加了一个自定义的打印机,这样可以自动地在自己的窗口中打开每一个图表控件。例如:在FSI中执行如下代码:

[for x in 0.0 .. 0.1 .. 6.0 -> sin x + cos (2.0 * x)]

|> FSharpChart.Line



将会产生如下窗口:

每个图表控件也包含一个上下文菜单,这使得易于复制图表到剪贴板,或者保存图表到一个文件,或者查看/修改详细的图表属性:



系列:

图表创建方法的重载允许用许多不同的方式来指定数据。特别是,大部分的图表允许数据被下面的任何机制来指定 :

只有一个y值序列(x的值隐式地从1增长到序列的长度,正像上面的图表所示)

独立的x和y值序列

一个(x,y)序列对

一个System.Iobservable 类型的y值或者(x,y)对,允许图表随着更多数据被发现而实时更新

另外,x和y的值不受浮点数的限制—— 他们只需被指定为一个实现了System.IConvertible 接口的类的值即可。这意味着用户能够很容易地创建一个已经被分好类的数据图表中:

[("A",1); ("B",3); ("C",2)]

|> FSharpChart.Pie



同样,图表也很容易对日期和时间进行积值。

open System

let r = Random()

[for d in -30 .. 0 ->

(DateTime.Today.AddDays(float d), r.NextDouble())]

|> FSharpChart.Column



希望这些信息足够使你在F#中用FSharpChart库进行交互式可视化操作。我会在我接下来的blog中更多介绍关于FSharpChart库的高级功能。在那之前,快乐地去创建图表吧!

FSharpChart Download

原文链接:http://blogs.msdn.com/b/fsharpteam/archive/2011/04/15/getting-started-with-fsharpchart.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: