gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 06:05:53 27 4
gpt4 key购买 nike

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

最佳答案

如果将其中一个系列的 AxisType 设置为 AxisType.Secondary,就可以执行此操作。当然,接下来由您来确保轴标签、图例等明确哪些数据映射到哪个比例。

open FSharp.Charting
open System.Windows.Forms.DataVisualization.Charting

let squaresChart = [ 1 .. 100 ] |> List.map (fun n -> (n, n*n)) |> Chart.Line
let cubesChart = [ 1 .. 100 ] |> List.map (fun n -> (n, n*n*n)) |> Chart.Line

let bad =
[ squaresChart
cubesChart ]
|> Chart.Combine

let good =
[ squaresChart
cubesChart |> Chart.WithSeries.AxisType(YAxisType = AxisType.Secondary) ]
|> Chart.Combine

差:

enter image description here

好:

enter image description here

这行得通,但在我为编写此答案所做的快速测试中,FSharp.Charting 似乎存在一些错误,某些自定义设置具有“传染性”。创建“好”图表后,即使我不想要它,辅助轴现在也会出现:

// secondary axis sticks around
bad |> Chart.WithTitle(Text = "Why secondary axis?")

// now the title and the secondary axis *both* stick around!
Chart.Rows [bad; good]

enter image description here enter image description here

关于f# - FSharpChart:同一图形上的两个刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31305580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com