# Makie: is it possible to draw major and minor ticks on all four axes?

**URL:** https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911
**Category:** General Usage
**Tags:** makie
**Created:** [August 24, 2021, 1:12pm UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911 "2021-08-24T13:12:09Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![liuyxpp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/liuyxpp/32/9870_2.png) [@liuyxpp](https://discourse.julialang.org/u/liuyxpp)
#### Post date: [August 24, 2021, 1:12pm UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911/1 "2021-08-24T13:12:09Z")

</div>

I can not find the solution from the doc. Note that I do not mean twin axes. I just want to pair the ticks for left and right axes, and bottom and top axes, respectively. Thanks!

---

<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: [August 24, 2021, 1:31pm UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911/2 "2021-08-24T13:31:46Z")

</div>

I never implemented those, no. But you can add them with a little bit of extra work. You can examine ax.elements[:xaxis] for example, it has observables that hold the tick positions, you just need to mirror them over to the other side and add them via linesegments

---

<div class="post-metadata">

### Author: ![liuyxpp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/liuyxpp/32/9870_2.png) [@liuyxpp](https://discourse.julialang.org/u/liuyxpp)
#### Post date: [August 24, 2021, 1:34pm UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911/3 "2021-08-24T13:34:55Z")

</div>

But this seems a basic functionality for a plotting software? Python’s matplotlib do it with a simple option: `xtick.top = True` and `ytick.right = True`. And a bunch of physics journal seems to prefer such axis layout.

---

<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: [August 24, 2021, 1:35pm UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911/4 "2021-08-24T13:35:59Z")

</div>

Yes it could be useful, we always appreciate PRs for missing features

---

<div class="post-metadata">

### Author: ![Pablo\_Marchant](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pablo_marchant/32/32828_2.png) [@Pablo\_Marchant](https://discourse.julialang.org/u/Pablo_Marchant)
#### Post date: [December 23, 2022, 1:47pm UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911/5 "2022-12-23T13:47:08Z")

</div>

Just wanted to leave a workaround I found while running into this same problem. One can get ticks on all sides by creating a linked axis on top ticking top and right.

```julia
using Makie
using CairoMakie

f = Figure()
ga = f[1, 1] = GridLayout()
axis = Axis(ga[1,1])

scatter!(axis,rand(10),rand(10))

# create axis on top to get ticks on all sides
axis_ticks = Axis(ga[1,1], yaxisposition = :right, xaxisposition = :top, rightspinevisible = false, leftspinevisible = false, topspinevisible = false, bottomspinevisible = false)
linkaxes!(axis, axis_ticks)
hidexdecorations!(axis_ticks,ticks=false, minorticks=false)
hideydecorations!(axis_ticks,ticks=false, minorticks=false)

save("example.png",f)

```

Which gives me:

 ![example](https://global.discourse-cdn.com/julialang/original/3X/8/a/8a21a9a5fb4b3e699c480e7fec0a186e67079f4c.png)

Would be great to have the possibility to set yaxisposition and xaxisposition to :both to specify this without needing an extra axis. Never gone into the Makie source code but might try to have a jab at it and submit a PR.

---

<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: [December 23, 2022, 2:21pm UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911/6 "2022-12-23T14:21:53Z")

</div>

This feature exists now: [https://docs.makie.org/stable/examples/blocks/axis/index.html#mirrored\_ticks](https://docs.makie.org/stable/examples/blocks/axis/index.html#mirrored_ticks)

```julia
f = Figure()
Axis(f[1, 1],
    xticks = 0:10,
    yticks = 0:10,
    xticksmirrored = true,
    yticksmirrored = true,
    xminorticksvisible = true,
    yminorticksvisible = true,
    xminortickalign = 1,
    yminortickalign = 1,
    xtickalign = 1,
    ytickalign = 1,
)
f

```

 ![grafik](https://global.discourse-cdn.com/julialang/original/3X/d/5/d53b8ef8f906ae1a212c20b21cbb45afd0e2f582.png)

---

<div class="post-metadata">

### Author: ![Pablo\_Marchant](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pablo_marchant/32/32828_2.png) [@Pablo\_Marchant](https://discourse.julialang.org/u/Pablo_Marchant)
#### Post date: [December 23, 2022, 3:12pm UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911/7 "2022-12-23T15:12:54Z")

</div>

Excellent!

much better than my dirty hack

---

<div class="post-metadata">

### Author: ![Pablo\_Marchant](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pablo_marchant/32/32828_2.png) [@Pablo\_Marchant](https://discourse.julialang.org/u/Pablo_Marchant)
#### Post date: [December 23, 2022, 3:45pm UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911/8 "2022-12-23T15:45:55Z")

</div>

Although it seems to have an issue when using layouts and `rowsize!`

```julia
using Makie
using CairoMakie

f = Figure()
ga = f[1, 1] = GridLayout()
axtop = Axis(ga[1,1],xticksmirrored = true, yticksmirrored = true, xtickalign=1,ytickalign=1)
axbottom = Axis(ga[2,1],xticksmirrored = true, yticksmirrored = true, xtickalign=1,ytickalign=1)

rowsize!(ga,1,Auto(0.3))

save("example.png",f)

f

```

This one seems to place the top ticks for the bottom plot in the position where the axis would be absent `rowsize!` (and indeed it works if one does not use `rowsize!`)

 ![example](https://global.discourse-cdn.com/julialang/original/3X/9/1/915bb0f800414266dc5953405752edaf80628a77.png)

---

<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: [December 23, 2022, 5:29pm UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911/9 "2022-12-23T17:29:54Z")

</div>

Hm seems like updating the ticks is still a little buggy, I think there’s already an issue about that

---

<div class="post-metadata">

### Author: ![liuyxpp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/liuyxpp/32/9870_2.png) [@liuyxpp](https://discourse.julialang.org/u/liuyxpp)
#### Post date: [December 26, 2022, 2:20am UTC](https://discourse.julialang.org/t/makie-is-it-possible-to-draw-major-and-minor-ticks-on-all-four-axes/66911/10 "2022-12-26T02:20:01Z")

</div>

Thanks for updating this! It is very handy.
