This seems like a bug to me, presumably in the system that translates values of x into positions on the screen. To me, the most convincing thing is making clear that numeric precision issues in the data aren’t involved at all by rescaling x back down again:
fig = Figure()
ax = Axis(fig[1, 1])
x = (collect(0.1:0.1:10) .+ 1e7) .- 1e7
y = 1:100
scatter!(ax, x, y)
For some reason I don’t understand, I can’t get Debugger.jl to work with this code, so I couldn’t figure out quickly where things are getting overly quantized.