Quick Tip Icon
Quick Tip

Align y-axis to leading edge in Swift Charts

The default behaviour in Swift Charts appears to always draw the y-axis in the trailing edge of the chart. However, in many cases I would prefer my charts to render with this y-axis on the leading edge.

I have found that I can controle the position of the y-axis ticks using chartYAxis() modifier in combination with AxisMarks(position: .leading).

struct SimpleChart: View {    
    var body: some View {
        Chart { ... }
        .chartYAxis {
            AxisMarks(position: .leading)
        }
    }
}
A bar chart with the y-axis on the leading edge


Swift Charts are designed to work with SwiftUI, but you can still use them in a UIKit project. You can check out Natalia Panferova's recent book Integrating SwiftUI into UIKit Apps for ways to add SwiftUI views to an existing UIKit project to take full advantage of the new iOS 16 APIs.

Integrating SwiftUI into UIKit Apps by Natalia Panferova book coverIntegrating SwiftUI into UIKit Apps by Natalia Panferova book cover

Check out our book!

Integrating SwiftUI into UIKit Apps

Integrating SwiftUI intoUIKit Apps

UPDATED FOR iOS 17!

A detailed guide on gradually adopting SwiftUI in UIKit projects.

  • Discover various ways to add SwiftUI views to existing UIKit projects
  • Use Xcode previews when designing and building UI
  • Update your UIKit apps with new features such as Swift Charts and Lock Screen widgets
  • Migrate larger parts of your apps to SwiftUI while reusing views and controllers built in UIKit