我正在尝试创建一个
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
。
此外,如果我尝试添加
.chartYScale(domain: minValueYAxis...maxValueYAxis)
,我会看到 这个问题。
看起来
.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])