在 SwiftUI 图表中从图表中偏移 Y 轴

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

首先,我已经搞乱了 SwiftUI 很长一段时间,但这是我第一次真正开始用它制作一个船舶质量的应用程序,所以完全有可能(甚至可能),答案很简单一。我仍然很感激您的帮助。当学习新东西时,我没有什么自豪感。

问题是我正在设置一个 Swift 图表,它是一个基本的条形图,显示系统中的用户数量,将其分为新用户和已建立的用户。

当前的输出如下所示:

Basic Chart

这很好,但我现在遇到的问题是:

enter image description here

注意轴标签和图表边缘之间的空间很小。

我想给它更多的喘息空间,但我有点困惑,不知道正确的方法。

提前感谢您的帮助!

这是图表部分的代码:

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()
    }
}
ios swift swiftui charts
1个回答
0
投票

尝试使用 Y AxisValueLabel 的水平间距:

AxisValueLabel(horizontalSpacing: 20)

所以在你的例子中,是这样的:

    .chartYAxis {
        AxisMarks(preset: .aligned, position: .leading) { _ in
            AxisGridLine()
            AxisValueLabel(horizontalSpacing: 20)
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.