I’m using Swift Charts in a SwiftUI app to create a line chart. However, with my current data, I’m experiencing extra space between the Y-axis and the first LineMark point. I would like the LineMark to start directly from the Y-axis. I would also like the same adjustment at the end.
struct ChartView: View {
let data = [ChartData(day: "Monday", value: 2),
ChartData(day: "Tuesday", value: 2.5),
ChartData(day: "Wednesday", value: 2.45),
ChartData(day: "Thursday", value: 1.76),
ChartData(day: "Friday", value: 2),
ChartData(day: "Saturday", value: 15.3),
ChartData(day: "Sunday", value: 2.4)]
let linearGradient = LinearGradient(gradient: Gradient(colors: [Color.accentColor.opacity(0.4),
Color.accentColor.opacity(0.2)]),
startPoint: .top,
endPoint: .bottom)
var selectedMaeker: Double = 2.0
var body: some View {
Chart {
ForEach(data) { value in
AreaMark(x: .value("Days", value.day),
y: .value("Values", value.value))
.alignsMarkStylesWithPlotArea()
.interpolationMethod(.linear)
.foregroundStyle(linearGradient)
LineMark(x: .value("Year", value.day),
y: .value("Population", value.value))
.interpolationMethod(.linear)
PointMark(x: .value("Year", value.day),
y: .value("Population", value.value))
.interpolationMethod(.linear)
.annotation(position: .overlay, alignment: .bottomTrailing, spacing: 10) {
if selectedMaeker == value.value {
Text("T")
}
}
}
.interpolationMethod(.linear)
}
.frame(width: 400, height: 300)
.chartYAxis {
AxisMarks(position: .leading)
}
.chartXAxisLabel(position: .bottom, alignment: .center) {
Text("x title")
}
.chartYAxisLabel(position: .leading, alignment: .center) {
}
.padding(10)
}
}