如何在控制台应用中非交互式运行FSharp.Plotly并弹出图表?
没问题,我来帮你搞定在F#控制台应用里用FSharp.Plotly弹出图表的事儿!
在F#控制台应用中使用FSharp.Plotly弹出图表的解决方案
1. 先搞定包引用
不管你用命令行还是Visual Studio,先给控制台项目装上FSharp.Plotly包:
- 命令行方式:在项目根目录运行
dotnet add package FSharp.Plotly - Visual Studio方式:右键项目 → 管理NuGet程序包 → 搜索
FSharp.Plotly并安装
2. 编写核心代码(浏览器显示版本)
其实和你在.fsx里写的逻辑几乎一样,只是把代码放到控制台项目的Main入口函数里就行:
open FSharp.Plotly [<EntryPoint>] let main argv = // 准备示例统计数据 let months = ["1月"; "2月"; "3月"; "4月"; "5月"] let sales = [1200; 1500; 1800; 1600; 2000] // 创建柱状图 let salesChart = Chart.Column(months, sales) |> Chart.withTitle "月度销售统计" |> Chart.withXAxisTitle "月份" |> Chart.withYAxisTitle "销售额(元)" // 关键:调用Show()弹出图表,默认会用系统浏览器打开生成的HTML salesChart |> Chart.Show // 可选:让控制台等待用户输入再退出,避免程序直接关掉 printfn "按任意键关闭控制台..." System.Console.ReadKey() |> ignore 0 // 返回程序退出码
3. 可选:在桌面窗口显示图表(而非浏览器)
如果你不想用浏览器,想在独立的桌面窗口展示图表,可以安装FSharp.Plotly.WinForms包,然后用WinForms控件显示:
- 先安装包:
dotnet add package FSharp.Plotly.WinForms - 修改代码:
open FSharp.Plotly open FSharp.Plotly.WinForms // 新增这个命名空间 [<EntryPoint>] let main argv = // 数据和图表创建逻辑和上面一样 let months = ["1月"; "2月"; "3月"; "4月"; "5月"] let sales = [1200; 1500; 1800; 1600; 2000] let salesChart = Chart.Column(months, sales) |> Chart.withTitle "月度销售统计" |> Chart.withXAxisTitle "月份" |> Chart.withYAxisTitle "销售额(元)" // 改用WinForms窗口显示 salesChart |> Chart.ShowWinForms // WinForms窗口会保持打开,直到用户关闭,这里可以不用加Console.ReadKey() 0
小提示
Chart.Show()会在系统临时目录生成一个HTML文件,然后调用默认浏览器打开,和你在.fsx里的体验完全一致。- 如果遇到浏览器没自动弹出的情况,可以手动调用
Chart.SaveHtml("chart.html")把图表保存到指定路径,然后自己打开这个文件查看。 - 确保你的项目目标框架是.NET Core 3.1+、.NET 5+或者.NET Framework 4.6.1+,FSharp.Plotly对这些框架都支持。
内容的提问来源于stack exchange,提问作者Skatedude
相关产品推荐
相关产品推荐

