# Makie - Colorbar crashing saving figure

**URL:** https://discourse.julialang.org/t/makie-colorbar-crashing-saving-figure/76983
**Category:** Visualization
**Tags:** makie, gridap
**Created:** [February 23, 2022, 4:56pm UTC](https://discourse.julialang.org/t/makie-colorbar-crashing-saving-figure/76983 "2022-02-23T16:56:05Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Herve](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/herve/32/222014_2.png) [@Herve](https://discourse.julialang.org/u/Herve)
#### Post date: [February 23, 2022, 4:56pm UTC](https://discourse.julialang.org/t/makie-colorbar-crashing-saving-figure/76983/1 "2022-02-23T16:56:05Z")

</div>

Hi, I am using Makie for displaying finite element computations with Gridap.jl. Works fine with GLMakie, but the use of “colorbar” crashes with CairoMakie (with exactly the same code as for GLMakie). Any clue ?

---

<div class="post-metadata">

### Author: ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)
#### Post date: [February 23, 2022, 6:24pm UTC](https://discourse.julialang.org/t/makie-colorbar-crashing-saving-figure/76983/2 "2022-02-23T18:24:45Z")

</div>

Can you post an MWE that reproduces the error?

---

<div class="post-metadata">

### Author: ![Herve](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/herve/32/222014_2.png) [@Herve](https://discourse.julialang.org/u/Herve)
#### Post date: [February 28, 2022, 9:10pm UTC](https://discourse.julialang.org/t/makie-colorbar-crashing-saving-figure/76983/3 "2022-02-28T21:10:27Z")

</div>

ERROR: LoadError: MethodError: no method matching interpolated\_getindex(::Vector{ColorTypes.RGB{Float32}}, ::Float64, ::Vector{Float64})  
Closest candidates are:  
interpolated\_getindex(::AbstractArray{T, N} where N, ::AbstractFloat) where T at /home/herve/.julia/packages/Makie/NL7Xw/src/colorsampler.jl:48  
interpolated\_getindex(::AbstractArray, ::Number, ::Union{Tuple{Vararg{T, N}}, StaticArrays.StaticVector{N, T}} where {N, T}) at /home/herve/.julia/packages/Makie/NL7Xw/src/colorsampler.jl:34  
Stacktrace:  
[1] (::CairoMakie.var"#17#20"{Vector{ColorTypes.RGB{Float32}}, Vector{Float64}, Nothing, Nothing, Nothing, Float64, Float64})(c::Float64)  
@ CairoMakie ~/.julia/packages/CairoMakie/0yMYf/src/utils.jl:222  
[2] iterate  
@ ./generator.jl:47 [inlined]  
[3] \_collect  
@ ./array.jl:695 [inlined]  
[4] collect\_similar  
@ ./array.jl:606 [inlined]  
[5] map  
@ ./abstractarray.jl:2294 [inlined]  
[6] per\_face\_colors(color::Vector{Float64}, colormap::Vector{ColorTypes.RGB{Float32}}, colorrange::Vector{Float64}, matcap::Nothing, vertices::Vector{GeometryBasics.Point{2, Float32}}, faces::Vector{GeometryBasics.TriangleFace{T} where T}, normals::Nothing, uv::Nothing, lowclip::Nothing, highclip::Nothing, nan\_color::Nothing)  
@ CairoMakie ~/.julia/packages/CairoMakie/0yMYf/src/utils.jl:214  
[7] per\_face\_colors(color::Vector{Float64}, colormap::Vector{ColorTypes.RGB{Float32}}, colorrange::Vector{Float64}, matcap::Nothing, vertices::Vector{GeometryBasics.Point{2, Float32}}, faces::Vector{GeometryBasics.TriangleFace{T} where T}, normals::Nothing, uv::Nothing)  
@ CairoMakie ~/.julia/packages/CairoMakie/0yMYf/src/utils.jl:198  
[8] draw\_mesh2D(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, primitive::Mesh{Tuple{GeometryBasics.Mesh{2, Float32, GeometryBasics.Ngon{2, Float32, 3, GeometryBasics.Point{2, Float32}}, GeometryBasics.SimpleFaceView{2, Float32, 3, GeometryBasics.OffsetInteger{-1, UInt32}, GeometryBasics.Point{2, Float32}, GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}}}}})  
@ CairoMakie ~/.julia/packages/CairoMakie/0yMYf/src/primitives.jl:636  
[9] draw\_atomic(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, primitive::Mesh{Tuple{GeometryBasics.Mesh{2, Float32, GeometryBasics.Ngon{2, Float32, 3, GeometryBasics.Point{2, Float32}}, GeometryBasics.SimpleFaceView{2, Float32, 3, GeometryBasics.OffsetInteger{-1, UInt32}, GeometryBasics.Point{2, Float32}, GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}}}}})  
@ CairoMakie ~/.julia/packages/CairoMakie/0yMYf/src/primitives.jl:611  
[10] draw\_plot(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, primitive::Mesh{Tuple{GeometryBasics.Mesh{2, Float32, GeometryBasics.Ngon{2, Float32, 3, GeometryBasics.Point{2, Float32}}, GeometryBasics.SimpleFaceView{2, Float32, 3, GeometryBasics.OffsetInteger{-1, UInt32}, GeometryBasics.Point{2, Float32}, GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}}}}})  
@ CairoMakie ~/.julia/packages/CairoMakie/0yMYf/src/infrastructure.jl:240  
[11] draw\_plot(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, primitive::Mesh{Tuple{GridapMakie.PlotGrid{Gridap.Visualization.VisualizationGrid{2, 2}}}}) (repeats 2 times)  
@ CairoMakie ~/.julia/packages/CairoMakie/0yMYf/src/infrastructure.jl:244  
[12] cairo\_draw(screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, scene::Scene)  
@ CairoMakie ~/.julia/packages/CairoMakie/0yMYf/src/infrastructure.jl:173  
[13] backend\_show(x::CairoMakie.CairoBackend, io::IOContext{IOStream}, #unused#::MIME{Symbol(“image/png”)}, scene::Scene)  
@ CairoMakie ~/.julia/packages/CairoMakie/0yMYf/src/infrastructure.jl:339  
[14] show(io::IOContext{IOStream}, m::MIME{Symbol(“image/png”)}, scene::Scene; update::Bool)  
@ Makie ~/.julia/packages/Makie/NL7Xw/src/display.jl:113  
[15] (::Makie.var"#914#915"{Float64, Float64, Bool, DataType, Scene})(s::IOStream)  
@ Makie ~/.julia/packages/Makie/NL7Xw/src/display.jl:252  
[16] open(::Makie.var"#914#915"{Float64, Float64, Bool, DataType, Scene}, ::String, ::Vararg{String, N} where N; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})  
@ Base ./io.jl:330  
[17] open  
@ ./io.jl:328 [inlined]  
[18] save(file::File{DataFormat{:PNG}, String}, fig::Figure; resolution::Tuple{Int64, Int64}, pt\_per\_unit::Float64, px\_per\_unit::Float64, update::Bool)  
@ Makie ~/.julia/packages/Makie/NL7Xw/src/display.jl:246  
[19] save(file::File{DataFormat{:PNG}, String}, fig::Figure)  
@ Makie ~/.julia/packages/Makie/NL7Xw/src/display.jl:228  
[20] save(filename::String, fig::Figure; args::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})  
@ Makie ~/.julia/packages/Makie/NL7Xw/src/display.jl:218  
[21] save(filename::String, fig::Figure)  
@ Makie ~/.julia/packages/Makie/NL7Xw/src/display.jl:218  
[22] top-level scope  
@ ~/Workspace/Julia/FP\_test\_1.jl:138  
in expression starting at /home/herve/Workspace/Julia/FP\_test\_1.jl:138

---

<div class="post-metadata">

### Author: ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)
#### Post date: [March 1, 2022, 8:32am UTC](https://discourse.julialang.org/t/makie-colorbar-crashing-saving-figure/76983/4 "2022-03-01T08:32:51Z")

</div>

MWE means minimal reproducable example.  
So short piece of code, that we can try and run to fix the bug.

---

<div class="post-metadata">

### Author: ![Herve](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/herve/32/222014_2.png) [@Herve](https://discourse.julialang.org/u/Herve)
#### Post date: [March 1, 2022, 10:03pm UTC](https://discourse.julialang.org/t/makie-colorbar-crashing-saving-figure/76983/5 "2022-03-01T22:03:55Z")

</div>

Code example: it’s a modification of a tutorial example.

```julia
using Gridap, GridapMakie
using CairoMakie
using FileIO

domain = (0, 1, 0, 1)
cell_nums = (10, 10)
model = CartesianDiscreteModel(domain, cell_nums) |> simplexify

Ω = Triangulation(model)
reffe = ReferenceFE(lagrangian, Float64, 1)
V = FESpace(model, reffe)
uh = interpolate(x->sin(π*(x[1]+x[2])), V)

fig, _, plt = plot(Ω, uh, colormap=:thermal, colorrange=[0, 4.])
wireframe!(Ω)#, color=:gray, linewidth=0.5)
Colorbar(fig[1,2], plt)
save("test_cairo.png", fig)

```

---

<div class="post-metadata">

### Author: ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)
#### Post date: [March 2, 2022, 5:41pm UTC](https://discourse.julialang.org/t/makie-colorbar-crashing-saving-figure/76983/6 "2022-03-02T17:41:16Z")

</div>

> colorrange=[0, 4.]

try `colorrange=(0, 4)`

---

<div class="post-metadata">

### Author: ![Herve](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/herve/32/222014_2.png) [@Herve](https://discourse.julialang.org/u/Herve)
#### Post date: [March 4, 2022, 5:09pm UTC](https://discourse.julialang.org/t/makie-colorbar-crashing-saving-figure/76983/7 "2022-03-04T17:09:48Z")

</div>

Works much better. Thank you !

Note: it does not crash with GLMakie instead of CairoMakie…
