Hello,n=5):
using CairoMakie
using ColorSchemes
n=5
xs = 1:n
ys = 1:n
grid1 = rand(Float16, n, n)
grid2 = rand(Float16, n, n)
zs = grid1/grid2
fig, ax, hm = heatmap(xs, ys, zs;
    axis = (xlabel="X", ylabel="Y",
    xgridvisible = false, ygridvisible = false,
    #xgridcolor = :black, ygridcolor = :black,
    xminorgridcolor = :black,  yminorgridcolor = :black,
    xminorgridvisible = true, yminorgridvisible = true,
    xminorticks = IntervalsBetween(2), yminorticks = IntervalsBetween(2)),
    colormap = :bwr)
Colorbar(fig[:, end+1], hm)
colsize!(fig.layout, 1, Aspect(1, 1.0))
resize_to_layout!(fig)
translate!(hm, 0, 0, -100)
But with other values, it does not work. For instance n=7 and n=10 give:
Is there a way to automatically fit a grid to the cells of the map? Cells are not the same as the axis…
Thank you
            
 
            
              
            
           
          
            
              
                jules  
                
                  
                    June 10, 2022,  1:19pm
                   
                  2 
               
             
            
              Ok you don’t need to coax the minor gridlines into doing that for you, you can explicitly plot your gridlines with vlines and hlines:
n = 10
xs = 1:n
ys = 1:n
grid1 = rand(Float16, n, n)
grid2 = rand(Float16, n, n)
zs = grid1/grid2
fig, ax, hm = heatmap(xs, ys, zs)
midpoints(x) = (x[1:end-1] .+ x[2:end]) .* 0.5
vlines!(midpoints(xs), color = :black, linewidth = 1)
hlines!(midpoints(ys), color = :black, linewidth = 1)
fig
             
            
              
            
           
          
            
            
              Thank you, but I get an error:
julia> zs = grid1/grid2
5×5 Matrix{Float16}:
 -2.938     13.28   -3.924   4.344   -1.856
  1.502    -12.05    4.812  -1.67     1.434
  1.107     -6.91    2.266  -0.221    0.5527
  0.11945   -7.035   2.916   0.6245   0.5527
 -0.4595     4.137  -1.104   0.6367  -0.3955
julia> fig, ax, hm = heatmap(xs, ys, zs;
           axis = (xlabel="X", ylabel="Y"),
           colormap = :bwr)
julia> Colorbar(fig[:, end+1], hm)
Colorbar()
julia> colsize!(fig.layout, 1, Aspect(1, 1.0))
julia> resize_to_layout!(fig)
(666.376f0, 600.0f0)
julia> # translate!(hm, 0, 0, -100)
       vlines!(midpoints(xs), color = :black, linewidth = 1)
ERROR: MethodError: no method matching vlines!(::StepRangeLen{Float64, Float64, Float64, Int64}; color=:black, linewidth=1)
Closest candidates are:
  vlines!(::Axis, ::Any; ymin, ymax, attrs...) at ~/.julia/packages/Makie/fEZv2/src/makielayout/helpers.jl:479
Stacktrace:
 [1] top-level scope
   @ none:1
julia> hlines!(midpoints(ys), color = :black, linewidth = 1)
ERROR: MethodError: no method matching hlines!(::StepRangeLen{Float64, Float64, Float64, Int64}; color=:black, linewidth=1)
Closest candidates are:
  hlines!(::Axis, ::Any; xmin, xmax, attrs...) at ~/.julia/packages/Makie/fEZv2/src/makielayout/helpers.jl:469
Stacktrace:
 [1] top-level scope
   @ none:1
 
            
              
            
           
          
            
              
                jules  
              
                  
                    June 10, 2022,  4:19pm
                   
                  4 
               
             
            
              You need to be on the latest Makie version, 0.17.4
             
            
              
            
           
          
            
            
              I got:
julia> Pkg.status("CairoMakie")
      Status `~/.julia/environments/v1.7/Project.toml`
  [13f3f980] CairoMakie v0.7.5
How can I upgrade (if needed)?
             
            
              
            
           
          
            
              
                jules  
              
                  
                    June 10, 2022,  6:23pm
                   
                  6 
               
             
            
              CairoMakie has a different version than Makie, but for both ]up should be enough unless you have something else in your environment that blocks the newer versions.