首先,我已经搞乱了 SwiftUI 很长一段时间,但这是我第一次真正开始用它制作一个船舶质量的应用程序,所以完全有可能(甚至可能),答案很简单一。我仍然很感激您的帮助。当学习新东西时,我没有什么自豪感。
问题是我正在设置一个 Swift 图表,它是一个基本的条形图,显示系统中的用户数量,将其分为新用户和已建立的用户。
当前的输出如下所示:
这很好,但我现在遇到的问题是:
注意轴标签和图表边缘之间的空间很小。
我想给它更多的喘息空间,但我有点困惑,不知道正确的方法。
提前感谢您的帮助!
这是图表部分的代码:
struct UserTypesChart: View {
@State var data: [RCVST_DataProvider.RowPlottableData]
var body: some View {
GroupBox("SLUG-USER-TOTALS-CHART-TITLE".localizedVariant) {
Chart(data) { inRowData in
ForEach(inRowData.data, id: \.userType) { inUserTypeData in
BarMark(
x: .value("SLUG-BAR-CHART-USER-TYPES-X".localizedVariant, inRowData.date),
y: .value("SLUG-BAR-CHART-USER-TYPES-Y".localizedVariant, inUserTypeData.value)
)
.foregroundStyle(by: .value("SLUG-BAR-CHART-USER-TYPES-LEGEND".localizedVariant, inUserTypeData.userType.localizedString))
}
}
}
.chartYAxisLabel("Users", spacing: 12)
.chartYAxis {
AxisMarks(preset: .aligned, position: .leading) { _ in
AxisGridLine()
AxisValueLabel(anchor: .trailing)
}
}
.chartXAxisLabel("Date", alignment: .bottom)
.chartXAxis {
AxisMarks(preset: .aligned, position: .bottom) { _ in
AxisGridLine()
AxisValueLabel()
}
}
.padding()
}
}
尝试使用 Y AxisValueLabel 的水平间距:
AxisValueLabel(horizontalSpacing: 20)
所以在你的例子中,是这样的:
.chartYAxis {
AxisMarks(preset: .aligned, position: .leading) { _ in
AxisGridLine()
AxisValueLabel(horizontalSpacing: 20)
}
}