Swift Chartsの小ネタです。
データが多いとうまいことラベルの表示位置を制御できなかったので、表示期間によってラベルの表示を変えたいことがありました。
ただラベルをカスタムしているので、標準のラベルをどうやって明示的に利用するのか悩んでしまいました。
以下でできましたので共有になります。
@AxisContentBuilder
private var chartXAxisContent: some AxisContent {
if historyRange != .all {
AxisMarks(
preset: .extended,
position: .bottom,
values: .stride(by: .day, count: histories.count / 6)
) { value in
if let date = value.as(Date.self) {
AxisTick()
AxisGridLine(centered: false)
AxisValueLabel(collisionResolution: .disabled) {
xAxisLabel(date)
}
}
}
} else {
AxisMarks()
}
}
参考記事
いつもお世話になっております。