问题标签 [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.

0 投票
1 回答
197 浏览

f# - 如何将 Y 轴标签转回

我正在使用 FSharp.Charting 0.87 来绘制非常基本的线性函数图表。有没有办法将 Y 轴标签转回正常位置?换句话说,我可以让“Y”方向正常,而不是旋转 90 度吗?

也就是说,我想知道Axis.TextOrientation是否暴露在任何地方。

这是代码:

0 投票
0 回答
422 浏览

f# - fsharp.charting 实时图表不显示数据

我正在玩 FSharp.Charting 和 observables。鉴于下面的代码chart.ShowChart()抛出 InvalidOperationException “枚举已经完成”

如果我删除此行,则数据将正确打印在控制台上。

谢谢。

0 投票
1 回答
1458 浏览

winforms - 如何在现有表单中显示 FSharp.Charting 图?

我不明白如何创建图表控件并将图表放置在现有表单中。我在网上找到的所有示例都以新形式显示图表,但我想将图表添加到我现有的一种形式中。

我在想这样的事情:

谢谢!

0 投票
0 回答
214 浏览

f# - FSharp.Charting 和设置主要刻度步骤

我正在尝试使用 FSharp.Charting 进行可视化。然而,对我来说,一个绊脚石是我正在使用 Try F# 上的教程,但 FSharp.Charting dll 是不同的 - 具有不同的方法签名等。

我正在尝试翻译在 Try F# 上找到的以下行:

但是,我找不到在 X 轴上设置主要刻度步长的方法 - 我的以下代码没有:

任何人都可以帮忙吗?

0 投票
2 回答
221 浏览

f# - 如何在 FSharp.Data 中选择一个时间段?

我编写了这个脚本来绘制历史财务数据:

这很好用。

问题:

  1. 有些数据是从 1986 年开始的,有些是从 2000 年开始的。我想绘制从 2000 年到 2015 年的数据。如何选择这个时间段?

  2. 鼠标悬停在图表上时是否可以显示时间?

0 投票
1 回答
323 浏览

f# - 如何在 Fsharp.Charting 中设置 xaxis 网格的网格质量?

我使用雅虎财经数据来比较两家公司的收盘价:

这就是我得到的:

VM和丰田收盘价

问题:

如图所示,只有两条网格线(2012/1/1 和 2014/1/1 年)。我想在 X 轴上有一个更精细的网格:从 2010 年到 2015 年每年一条线。可以这样设置网格吗?

0 投票
1 回答
142 浏览

winforms - 带有 Windows.Forms 的 FSharpChart 在很多方面都非常慢

我使用下面示例中的代码对 F# Interactive 中的值列表进行基本绘图。绘制更多点时,显示时间会急剧增加。在下面的示例中,10^4 点在 4 秒内显示,而 4.10^4 点需要耐心测试 53 秒才能显示。总的来说,绘制 N 个点的时间大致是在 N^2 中。

结果是我可能会在这段代码前面添加一个插值层,但是

1)我想知道知道 FSharpChart 和 Windows.Forms 工作原理的人是否可以解释导致这种行为的原因?(数据是有界的,所以似乎可以排除的一件事是显示器需要调整比例。)

2)除了自己插入数据之外,还有其他简单的补救措施吗?

0 投票
2 回答
223 浏览

f# - FSharpChart:同一图形上的两个刻度

我正在使用 FSharpChart 在同一图形上打印移动平均线和股票交易量。问题是一个图形从 20 到 50 或多或少,另一个从 0 到 8000 万,所以当我将两者结合起来时,一个被拆分到底部,这是无用的。我可以在 Y 轴上有两个不同的刻度,以便两个图形正确“合并”吗?

0 投票
2 回答
419 浏览

f# - 基于无限序列的 Observable 动画图表

我无法使用FSharp.ChartingFSharp.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,我发现了NewThreadSchedulerThreadPoolSchedulerTaskPoolScheduler,它们都实现了IScheduler. 这些类的名称听起来很有希望,但我找不到它们!

根据文档,它们都定义在 中System.Reactive.dll,但是虽然我拥有FSharp.Control.Reactive的所有依赖项,但我在任何地方都没有该程序集。搜索互联网也没有透露从哪里得到它。

它是反应式扩展的旧版本还是新版本?我什至在寻找正确的方向吗?

如何在 a 上可视化我的无限点序列LiveChart


这是重现该问题的完整脚本:

已安装的 NuGet 包:

0 投票
1 回答
148 浏览

f# - F# Charting 没有自动轴范围设置?

这不是一个真正的问题,更多的是一个问题。我正在使用 FSharp.Charting 来绘制一些快速的东西。我注意到的一件事是图表不会自动为您设置轴限制。假设我有一个数值在 100,000 到 200,000 之间的数字列表。y 轴仍以 0 为基础。它不会按比例缩放以让您更好地查看数据。你必须自己做。或者也许有一种方法,我只是还没有想出来。有没有其他人遇到过这个问题?有什么建议么?