Eu tenho um LineMark onde minhas marcas do eixo X estão muito próximas das bordas e um pouco difíceis de ler:
Chart {
ForEach(numberWorkouts) { numberworkouts in
if dateState == .weeks {
LineMark(
x: .value("Date", numberworkouts.date, unit: .day),
y: .value("Total", numberworkouts.numberOfWorkouts)
)
.interpolationMethod(.catmullRom)
.symbol {
Circle()
.fill(.blue)
.frame(width: 7, height: 7)
}
} else {
LineMark(
x: .value("Date", numberworkouts.date, unit: .month),
y: .value("Total", numberworkouts.numberOfWorkouts)
)
.symbol {
Circle()
.fill(.blue)
.frame(width: 7, height: 7)
}
}
}
}
.chartYAxis {
AxisMarks(position: .leading)
}
.chartYAxisLabel(position: .leading, alignment: .center) {
}
.chartYAxis {
AxisMarks(stroke: StrokeStyle(lineWidth: 0))
}
.chartXAxis {
if dateState == .weeks {
AxisMarks(preset: .aligned, values: .stride(by: .day, count: 7)) {
AxisValueLabel(format: .dateTime.month(.twoDigits).day())
}
} else {
AxisMarks(values: .stride(by: .month)) {
AxisValueLabel(format: .dateTime.month(.abbreviated), centered: true)
}
}
}
//.chartForegroundStyleScale(dataType == .MaxWeight ? ["Max Weight": Color.blue] : ["One Rep Max": Color.blue] )
.chartForegroundStyleScale(["No. of Workouts": Color.blue])
.chartLegend(.visible)
.aspectRatio(1.7, contentMode: .fit)
//.padding()
como faço para empurrar 17/7 e 07/08 um pouco para dentro, tentei aplicar preenchimento ao gráfico, mas isso aplica preenchimento à parte externa do LineMark e o LineMark não aceita preenchimento como modificador

Você pode adicionar um
anchorparâmetro aoAxisValueLabel.Se você quiser usar âncoras diferentes dependendo se é o primeiro, intermediário ou último valor, você pode usar o
AxisValuesinicializador que suporta um fechamento para definir o conteúdo do marcador de eixo: init(preset:position:values:content:) .O
contentencerramento recebe umAxisValueparâmetro as e isso inclui as propriedadesindexecount:Para obter mais informações sobre possibilidades de formatação, consulte Personalizando eixos em gráficos Swift .