F# XPlot中的选项和WithSize等是否仅针对特定图表?
我尝试了FSLab教程中的F# XPlot中的选项和WithSize等是否仅针对特定图表?,f#,fslab,F#,Fslab,我尝试了FSLab教程中的Chart.with size和displayZoomButtons=true,但似乎没有改变输出 在其他直接使用XPlot.GoogleCharts的项目中也是如此 我遗漏了什么吗?从nuget下载Plotly 1.4.2,并替换XPlotly的FSLab packages目录中的DLL(请参阅)。然后,您可以使用Xplotly的控件进行放大和缩小、保存图表等操作。例如: #load @"..\..\FSLAB\packages\FsLab\FsLab.fsx" o
Chart.with size
和displayZoomButtons=true
,但似乎没有改变输出
在其他直接使用XPlot.GoogleCharts的项目中也是如此
我遗漏了什么吗?从nuget下载Plotly 1.4.2,并替换XPlotly的FSLab packages目录中的DLL(请参阅)。然后,您可以使用Xplotly的控件进行放大和缩小、保存图表等操作。例如:
#load @"..\..\FSLAB\packages\FsLab\FsLab.fsx"
open XPlot.Plotly
open XPlot.Plotly.Graph
open XPlot.Plotly.Html
//open XPlot.GoogleCharts
let layout = Layout(title = "Basic Bar Chart")
["giraffes", 20; "orangutans", 14; "monkeys", 23]
|> Chart.Bar
|> Chart.WithLayout layout
|> Chart.WithHeight 400
|> Chart.WithWidth 700
|> Chart.Show
使用Plotly的非常简单的图表解决方案(而且有效):
打开Newtonsoft.Json
让html=”“”
var数据=_数据_;;
变量布局=\uuuu布局\uuuuu;
Plotly.newPlot('myDiv',数据,布局);
"""
设(=>)kv=k,(v:>obj)
让doPlot数据布局=
让data=JsonConvert.serialized对象数据
let layout=JsonConvert.serialized对象布局
让path=path.GetTempPath()+DateTime.Now.Ticks.ToString()+“.html”
File.writealText(路径,html.Replace(“\uuuuu DATA\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
系统.诊断.过程.启动(路径)
让布局=
[“标题”=>“绘图”
“xaxis”=>dict[
“标题”=>“记号”
“showgrid”=>false
“零线”=>假
]
“yaxis”=>dict[
“标题”=>“价格”
“showline”=>false
]
]|>dict
让数据=[
dict[“x”=>[1999;2000;2001;2002]
“y”=>[16;5;11;9]
]
]
doPlot数据布局
您可以改用XPlot.Plotly吗?看起来有很多图表没有通过XPlot.Plotly
公开。。。值得注意的是,烛台、馅饼和日历都不见了:/@ReiMiyasaka是的,我注意到了。我不太熟悉Xplot中的谷歌图表,但我也有同样的问题,无法调整图表的大小。您可能想在github上提交一个问题。我决定尝试实现自己的html/javascript图表代理。使用嵌入式ASP.Net核心服务器应该不会太难,它可以让我访问所有免费的javascript可视化库。@ReiMiyasaka很高兴在github上看到它。:)大概它不会有太多的代码,因为我不想让它像XPlot那样可组合或可配置——只想在一个.fsx文件中硬编码大部分生成的html/js,这样我就可以直接处理它了。它可能更适合写博客——只是我现在没有博客。我会想办法的。
open Newtonsoft.Json
let html = """<head>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
<div id="myDiv" style="width: 100%; height: 100%;"></div>
<script>
var data = __DATA__;
var layout = __LAYOUT__;
Plotly.newPlot('myDiv', data, layout);
</script>
</body>"""
let (=>) k v = k, (v:>obj)
let doPlot data layout =
let data = JsonConvert.SerializeObject data
let layout = JsonConvert.SerializeObject layout
let path = Path.GetTempPath() + DateTime.Now.Ticks.ToString() + ".html"
File.WriteAllText(path, html.Replace("__DATA__", data).Replace("__LAYOUT__", layout))
System.Diagnostics.Process.Start(path)
let layout =
[ "title" => "Plot"
"xaxis" => dict [
"title" => "Ticks"
"showgrid" => false
"zeroline" => false
]
"yaxis" => dict [
"title" => "Price"
"showline" => false
]
] |> dict
let data = [
dict [ "x" => [1999; 2000; 2001; 2002]
"y" => [16; 5; 11; 9]
]
]
doPlot data layout