GLMakie, yscale=log10 and Float32

A simple scatter plot with a log scale gives an error if the y values underflow Float32:

x = 10.0.^-(0:50)
using GLMakie
fig = Figure()
ax = Axis(fig[1,1], yscale=log10)
scatter!(x)

ERROR: Found invalid y-limits (0.0f0, 1.0f0) for scale log10 which is defined on the interval 0.0..Inf (open)
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:35
    ...

On the other hand, the following seems fine:

scatter(x)

I (vaguely) understand that GLMakie internally keeps its values as Float32s but in this case is the conversion being done prematurely?

I’m using GLMakie 0.8.6, Julia 1.9.2 on Windows 10.

Yes conversion is currently done immediately, there is a PR in the works that might shift Float32 conversion to a later point but it hasn’t reached a mergeable state, yet.

2 Likes

That would be useful - thanks for the explanation!

any update on this?, how to work around?