SwiftUI 以数据最低值绘制 Y 轴图表

问题描述 投票:0回答:1

我正在尝试创建一个

SwiftUI
图表,其 y 轴不从 0 开始。这是当前的问题 - 请参阅下面的屏幕截图。尽管
stockPrices
中的第一个数据是
132.70
,但图表从 0 开始。

我知道这个问题,但如果我添加

.chartYScale(domain: .automatic(includesZero: false))
,它不会做任何事情。

查看代码

let stockPrices = [
    StockPrice(timestamp: "2024-04-01 09:30:00", price: 132.70),
    StockPrice(timestamp: "2024-04-02 09:30:00", price: 126.10),
    StockPrice(timestamp: "2024-04-03 09:30:00", price: 140.60),
    .... nothing lower than 120
]

Chart(stockPrices) {
  AreaMark(
      x: .value("Month", $0.timestamp),
      y: .value("Total", $0.price)
  )
}
.chartYScale(domain: .automatic(includesZero: false))

请注意,有点难以看到 - y 轴上的值是

150
100
50

enter image description here

此外,如果我尝试添加

.chartYScale(domain: minValueYAxis...maxValueYAxis)
,我会看到 这个问题。

swift swiftui swiftcharts
1个回答
0
投票

看起来

.chartYScale(domain: .automatic(includesZero: false))
对于 a 来说对
AreaMark
没有任何作用。

this thread 我发现使用

(x:ystart:yend:)
修饰符时需要添加
chartYScale(domain:)

更新代码

Chart(stockPrices) {
  AreaMark(
     x: .value("Month", $0.timestamp),
     yStart: .value("Total", $0.price),
     yEnd: .value("Total", minStockPrice ?? 0)
  )
}
.chartYScale(domain: [minStockPrice ?? 0, maxStockPrice ?? 0])
© www.soinside.com 2019 - 2024. All rights reserved.