# Declarative ylims!

**URL:** https://discourse.julialang.org/t/declarative-ylims/62504
**Category:** General Usage
**Tags:** makie, algebraofgraphics
**Created:** [June 7, 2021, 9:42am UTC](https://discourse.julialang.org/t/declarative-ylims/62504 "2021-06-07T09:42:08Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![jzr](https://avatars.discourse-cdn.com/v4/letter/j/eb9ed0/32.png) [@jzr](https://discourse.julialang.org/u/jzr)
#### Post date: [June 7, 2021, 9:42am UTC](https://discourse.julialang.org/t/declarative-ylims/62504/1 "2021-06-07T09:42:09Z")

</div>

```julia
f = draw(layers)
ylims!(f.grid[1,1].axis, -.4, .4)

```

Is there a declarative way to set the axis limits using the `draw` function?

---

<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: [June 7, 2021, 11:48am UTC](https://discourse.julialang.org/t/declarative-ylims/62504/2 "2021-06-07T11:48:49Z")

</div>

usually it’s `axis = (limits = (xmin, xmax, ymin, ymax),)` but I’m not sure if AoG would overwrite that

---

<div class="post-metadata">

### Author: ![sijo](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@sijo](https://discourse.julialang.org/u/sijo)
#### Post date: [June 7, 2021, 11:55am UTC](https://discourse.julialang.org/t/declarative-ylims/62504/3 "2021-06-07T11:55:53Z")

</div>

This works:

```julia
axis = (; limits=(nothing, (-0.4, 0.4)))

f = draw(layers; axis)

```

---

<div class="post-metadata">

### Author: ![piever](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/piever/32/1815_2.png) [@piever](https://discourse.julialang.org/u/piever)
#### Post date: [June 8, 2021, 6:47pm UTC](https://discourse.julialang.org/t/declarative-ylims/62504/4 "2021-06-08T18:47:35Z")

</div>

After [#204](https://github.com/JuliaPlots/AlgebraOfGraphics.jl/pull/204) there shouldn’t be any explicit keyword arguments that are overridden by AoG, so that should just work.

---

<div class="post-metadata">

### Author: ![mhinsch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mhinsch/32/26676_2.png) [@mhinsch](https://discourse.julialang.org/u/mhinsch)
#### Post date: [July 8, 2021, 1:19pm UTC](https://discourse.julialang.org/t/declarative-ylims/62504/5 "2021-07-08T13:19:06Z")

</div>

This does not seem to work for me.

```nohighlight
fig = data(@where(dat, :orient.==1, :rand_seed_world.==111)) * 
    (visual(BoxPlot) + visual(Scatter)) *
    mapping(:expl, :n_arrived, col=(:err => string), row=(:link_thresh => string), color=:social, dodge=:social)

d = draw(fig; axis=(;limit=(nothing, (7000, 10000))))

```

No matter which value I insert for the y limits the plot always displays the full range of the data (~ 0-10k).

---

<div class="post-metadata">

### Author: ![sijo](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@sijo](https://discourse.julialang.org/u/sijo)
#### Post date: [July 8, 2021, 2:44pm UTC](https://discourse.julialang.org/t/declarative-ylims/62504/6 "2021-07-08T14:44:07Z")

</div>

Just a typo of writing `limit` instead of `limits`?

---

<div class="post-metadata">

### Author: ![mhinsch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mhinsch/32/26676_2.png) [@mhinsch](https://discourse.julialang.org/u/mhinsch)
#### Post date: [July 8, 2021, 3:15pm UTC](https://discourse.julialang.org/t/declarative-ylims/62504/7 "2021-07-08T15:15:57Z")

</div>

🤦‍♂️ Ouch, you are completely right.

---

<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: [July 9, 2021, 7:57am UTC](https://discourse.julialang.org/t/declarative-ylims/62504/8 "2021-07-09T07:57:10Z")

</div>

To be fair, we are aware that it’s not very user friendly to silently ignore misspelled keyword arguments, and are thinking about ways to improve this.

---

<div class="post-metadata">

### Author: ![mhinsch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mhinsch/32/26676_2.png) [@mhinsch](https://discourse.julialang.org/u/mhinsch)
#### Post date: [July 9, 2021, 10:41am UTC](https://discourse.julialang.org/t/declarative-ylims/62504/9 "2021-07-09T10:41:29Z")

</div>

That would indeed be quite helpful. Plus some documentation on which keywords are supported would be great. IIUC this exposes Makie’s API (correct me if I’m wrong), so maybe just a pointer to the corresponding section in the Makie docs?

---

<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: [July 9, 2021, 10:48am UTC](https://discourse.julialang.org/t/declarative-ylims/62504/10 "2021-07-09T10:48:07Z")

</div>

`?Axis` gives a whole long list, `limits` is in there as well.

---

<div class="post-metadata">

### Author: ![mhinsch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mhinsch/32/26676_2.png) [@mhinsch](https://discourse.julialang.org/u/mhinsch)
#### Post date: [July 9, 2021, 1:15pm UTC](https://discourse.julialang.org/t/declarative-ylims/62504/11 "2021-07-09T13:15:29Z")

</div>

Cool, thanks.
