问题标签 [fsharpchart]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
f# - 如何将 Y 轴标签转回
我正在使用 FSharp.Charting 0.87 来绘制非常基本的线性函数图表。有没有办法将 Y 轴标签转回正常位置?换句话说,我可以让“Y”方向正常,而不是旋转 90 度吗?
也就是说,我想知道Axis.TextOrientation是否暴露在任何地方。
这是代码:
f# - fsharp.charting 实时图表不显示数据
我正在玩 FSharp.Charting 和 observables。鉴于下面的代码chart.ShowChart()
抛出 InvalidOperationException “枚举已经完成”
如果我删除此行,则数据将正确打印在控制台上。
谢谢。
winforms - 如何在现有表单中显示 FSharp.Charting 图?
我不明白如何创建图表控件并将图表放置在现有表单中。我在网上找到的所有示例都以新形式显示图表,但我想将图表添加到我现有的一种形式中。
我在想这样的事情:
谢谢!
f# - FSharp.Charting 和设置主要刻度步骤
我正在尝试使用 FSharp.Charting 进行可视化。然而,对我来说,一个绊脚石是我正在使用 Try F# 上的教程,但 FSharp.Charting dll 是不同的 - 具有不同的方法签名等。
我正在尝试翻译在 Try F# 上找到的以下行:
但是,我找不到在 X 轴上设置主要刻度步长的方法 - 我的以下代码没有:
任何人都可以帮忙吗?
f# - 如何在 FSharp.Data 中选择一个时间段?
我编写了这个脚本来绘制历史财务数据:
这很好用。
问题:
有些数据是从 1986 年开始的,有些是从 2000 年开始的。我想绘制从 2000 年到 2015 年的数据。如何选择这个时间段?
鼠标悬停在图表上时是否可以显示时间?
f# - 如何在 Fsharp.Charting 中设置 xaxis 网格的网格质量?
我使用雅虎财经数据来比较两家公司的收盘价:
这就是我得到的:
问题:
如图所示,只有两条网格线(2012/1/1 和 2014/1/1 年)。我想在 X 轴上有一个更精细的网格:从 2010 年到 2015 年每年一条线。可以这样设置网格吗?
winforms - 带有 Windows.Forms 的 FSharpChart 在很多方面都非常慢
我使用下面示例中的代码对 F# Interactive 中的值列表进行基本绘图。绘制更多点时,显示时间会急剧增加。在下面的示例中,10^4 点在 4 秒内显示,而 4.10^4 点需要耐心测试 53 秒才能显示。总的来说,绘制 N 个点的时间大致是在 N^2 中。
结果是我可能会在这段代码前面添加一个插值层,但是
1)我想知道知道 FSharpChart 和 Windows.Forms 工作原理的人是否可以解释导致这种行为的原因?(数据是有界的,所以似乎可以排除的一件事是显示器需要调整比例。)
2)除了自己插入数据之外,还有其他简单的补救措施吗?
f# - FSharpChart:同一图形上的两个刻度
我正在使用 FSharpChart 在同一图形上打印移动平均线和股票交易量。问题是一个图形从 20 到 50 或多或少,另一个从 0 到 8000 万,所以当我将两者结合起来时,一个被拆分到底部,这是无用的。我可以在 Y 轴上有两个不同的刻度,以便两个图形正确“合并”吗?
f# - 基于无限序列的 Observable 动画图表
我无法使用FSharp.Charting和FSharp.Control.Reactive创建我的一些数据的动画可视化。
本质上,我有一个无限的点生成器。我的真实生成器比下面的例子更复杂,但是这个简化的例子重现了这个问题:
这个move
函数有类型(int * int) list -> seq<(int * int) list>
。对于每次迭代,它将输入列表中的所有点平移 1,以便这些点向上和向右移动。
我想在LiveChart.Point
. 生成的序列move
可以转换为适当的Observable
,但它本身运行得很快,所以我先放慢一点:
这使我能够从点序列中创建一个 Observable:
我还可以看到,如果我打印到控制台,它可以工作:
通过打印到控制台,也很清楚这会阻塞执行环境;例如,如果您将脚本发送到F# Interactive (FSI),它会继续打印,您必须取消评估或重置会话才能停止它。
我的理论是,这是因为它obs
与执行环境在同一线程上运行。
如果我尝试利用LiveChart.Point
它,也会发生同样的情况:
如果我将此发送给 FSI,则不会发生任何事情(未显示图表),并且 FSI 会阻塞。
这似乎与我的理论一致,即观察者与图表在同一线程上运行。
如何让 Observer 在不同的线程上运行?
我发现Observable.observeOn
,这需要一个IScheduler
. 浏览 MSDN,我发现了NewThreadScheduler、ThreadPoolScheduler和TaskPoolScheduler,它们都实现了IScheduler
. 这些类的名称听起来很有希望,但我找不到它们!
根据文档,它们都定义在 中System.Reactive.dll
,但是虽然我拥有FSharp.Control.Reactive的所有依赖项,但我在任何地方都没有该程序集。搜索互联网也没有透露从哪里得到它。
它是反应式扩展的旧版本还是新版本?我什至在寻找正确的方向吗?
如何在 a 上可视化我的无限点序列LiveChart
?
这是重现该问题的完整脚本:
已安装的 NuGet 包:
f# - F# Charting 没有自动轴范围设置?
这不是一个真正的问题,更多的是一个问题。我正在使用 FSharp.Charting 来绘制一些快速的东西。我注意到的一件事是图表不会自动为您设置轴限制。假设我有一个数值在 100,000 到 200,000 之间的数字列表。y 轴仍以 0 为基础。它不会按比例缩放以让您更好地查看数据。你必须自己做。或者也许有一种方法,我只是还没有想出来。有没有其他人遇到过这个问题?有什么建议么?