如何自定义 Swift Charts 中的 y 轴值?

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

我有一个简单的图表(使用 Swift Charts 框架制作),其中显示了某物随时间变化的百分比。这里的 x 轴是时间,y 轴是百分比。因此,我认为如果 y 轴的值类似于 25%、50% 等,对用户来说会更有意义。

如何自定义 y 轴值并在末尾添加符号(在本例中为

%
)?

这是到目前为止的代码:

Chart(data, id: \.date) { datum in
    LineMark(
        x: .value("Date", datum.date, unit: .day),
        y: .value("Done", datum.doneCount * 100 / (datum.doneCount + datum.notDoneCount))
    )
    .interpolationMethod(.catmullRom)
    .foregroundStyle(Color.orange)
}
.chartXAxis {
    AxisMarks(values: .stride(by: .day))
}

swift swiftui swiftui-charts
2个回答
9
投票

只需将此代码块添加到您的图表中

.chartYAxis {
   AxisMarks() {
       let value = $0.as(Int.self)!
       AxisValueLabel {
           Text("\(value)%")
       }
   }
}

您的图表将显示 0%、25%、... 作为标签


0
投票

为了用“%”格式化y轴标记,可以使用Decimal.FormatStyle.Percent:

.chartYAxis {
    AxisMarks(
        format: Decimal.FormatStyle.Percent.percent.scale(1),
        values: [0, 25, 50, 75, 100]
    )
}

如果您想让默认值显示(在您不知道这些值是否会受到 100% 限制的情况下),您可以将值留空:

.chartYAxis {
   AxisMarks() {
       AxisValueLabel(format: Decimal.FormatStyle.Percent.percent.scale(1))
   }
}

Apple 的文章“自定义 Swift 图表中的轴”中介绍了这些场景和其他场景:https://developer.apple.com/documentation/charts/customizing-axes-in-swift-charts

© www.soinside.com 2019 - 2024. All rights reserved.