I am looking to make a scatter plot some values with x values that can only be integers (1,2,3…).

By default, Julia will sometimes use x ticks that are integers values, or sometimes as floats, depending on the range of x-values:

```
using Plots
n_data = 14
x = collect(1:n_data)
y = rand(n_data)
scatter(x, y)
```

Taking n_data = 10, I get x ticks at (2,4,6,…) as I wish to obtain but with n_data = 14 I obtain fractional values of (2.5,5,7,5,…).

How can I force Julia to only display integers values as x ticks?

Thanks in advance!

It would be nice if you could force ints/only use the x values specified, but I don’t know of a way. This works though

```
scatter(x, y, xticks = x)
```

1 Like

lmiq
#3
One trick can be this one:

```
julia> x = 14*rand(20);
julia> function int_ticks(x; step=1)
imin = floor(Int, minimum(x))
imax = ceil(Int, maximum(x))
return range(imin, imax, step=step)
end
int_ticks (generic function with 2 methods)
julia> scatter(x, rand(20), xticks=int_ticks(x; step=2))
```

or, to be sure that the extrema of the ticks appear:

```
julia> scatter(x, rand(20), xticks=int_ticks(x; step=2), xlims=extrema(int_ticks(x)))`
```

Then you get:

In other words, you can set anything to be the `xticks`

, so you can do that by hand, such as `xticks=0:2:14`

.

2 Likes