# How to specify \`margins\` to \`0mm\` in RecipesBase.jl?

**URL:** <https://discourse.julialang.org/t/how-to-specify-margins-to-0mm-in-recipesbase-jl/90384>\
**Category:** General Usage\
**Tags:** plotting, plots, recipe\
**Created:** [November 17, 2022, 5:09am UTC](https://discourse.julialang.org/t/how-to-specify-margins-to-0mm-in-recipesbase-jl/90384 "2022-11-17T05:09:10Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![singularitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/singularitti/32/17678_2.png) [@singularitti](https://discourse.julialang.org/u/singularitti)\
**Post date:** [November 17, 2022, 5:09am UTC](https://discourse.julialang.org/t/how-to-specify-margins-to-0mm-in-recipesbase-jl/90384/1 "2022-11-17T05:09:10Z")

</div>

If I want to create a recipe for my type with only `RecipesBase.@recipe`, I seem not to be able to specify all margins to be `0` or `0mm`, where it requires a `Measure` type, which is defined in `Plots.Measures` module. How can I do that?

```julia
using RecipesBase

@recipe function f(data::Data)
    margins --> 0
    return data
end

julia> heatmap(data)
Error showing value of type Plots.Plot{Plots.GRBackend}:
ERROR: MethodError: no method matching +(::AbsoluteLength, ::Int64)
Closest candidates are:
  +(::Any, ::Any, ::Any, ::Any...) at operators.jl:591
  +(::T, ::T) where T<:Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8} at int.jl:87
  +(::Rational, ::Integer) at rational.jl:313
  ...
Stacktrace:
  [1] _update_min_padding!(sp::Plots.Subplot{Plots.GRBackend})
    @ Plots ~/.julia/packages/Plots/gzYVM/src/backends/gr.jl:787
  [2] iterate
    @ ./generator.jl:47 [inlined]
  [3] _collect(c::Matrix{AbstractLayout}, itr::Base.Generator{Matrix{AbstractLayout}, typeof(Plots._update_min_padding!)}, #unused#::Base.EltypeUnknown, isz::Base.HasShape{2})
    @ Base ./array.jl:807
  [4] collect_similar
    @ ./array.jl:716 [inlined]
  [5] map
    @ ./abstractarray.jl:2933 [inlined]
  [6] _update_min_padding!(layout::Plots.GridLayout)
    @ Plots ~/.julia/packages/Plots/gzYVM/src/layouts.jl:268
  [7] prepare_output(plt::Plots.Plot{Plots.GRBackend})
    @ Plots ~/.julia/packages/Plots/gzYVM/src/plot.jl:241
  [8] display(#unused#::Plots.PlotsDisplay, plt::Plots.Plot{Plots.GRBackend})
    @ Plots ~/.julia/packages/Plots/gzYVM/src/output.jl:173

```

 ![image](https://global.discourse-cdn.com/julialang/original/3X/7/5/75bb9b4cd1a87108d4f8b6187ae4d595d214e7a9.png)

---

<div class="post-metadata">

**Author:** ![t-bltg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/t-bltg/32/25526_2.png) [@t-bltg](https://discourse.julialang.org/u/t-bltg)\
**Post date:** [November 17, 2022, 8:41am UTC](https://discourse.julialang.org/t/how-to-specify-margins-to-0mm-in-recipesbase-jl/90384/2 "2022-11-17T08:41:45Z")

</div>

Open an ticket in [Issues · JuliaPlots/Plots.jl · GitHub](https://github.com/JuliaPlots/Plots.jl/issues) to discuss this.

We could move [Plots.jl/plotmeasures.jl at master · JuliaPlots/Plots.jl · GitHub](https://github.com/JuliaPlots/Plots.jl/blob/master/src/plotmeasures.jl) to `RecipesBase`.

---

<div class="post-metadata">

**Author:** ![singularitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/singularitti/32/17678_2.png) [@singularitti](https://discourse.julialang.org/u/singularitti)\
**Post date:** [November 17, 2022, 8:51am UTC](https://discourse.julialang.org/t/how-to-specify-margins-to-0mm-in-recipesbase-jl/90384/3 "2022-11-17T08:51:25Z")

</div>

Thanks! The issue is here: [[FR] How to specify `margins` to `0mm` in `RecipesBase`? · Issue #4522 · JuliaPlots/Plots.jl · GitHub](https://github.com/JuliaPlots/Plots.jl/issues/4522)

---

<div class="post-metadata">

**Author:** ![singularitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/singularitti/32/17678_2.png) [@singularitti](https://discourse.julialang.org/u/singularitti)\
**Post date:** [November 18, 2022, 1:25am UTC](https://discourse.julialang.org/t/how-to-specify-margins-to-0mm-in-recipesbase-jl/90384/4 "2022-11-18T01:25:39Z")

</div>

The suggested way is writing:

```julia
using RecipesBase

@recipe function f(data::Matrix)
    margins --> (0, :mm)
    return data
end

```

See [[FR] How to specify `margins` to `0mm` in `RecipesBase`? · Issue #4522 · JuliaPlots/Plots.jl · GitHub](https://github.com/JuliaPlots/Plots.jl/issues/4522#issuecomment-1318511879)
