Q:

gnuplot separate closed numbers

I often get the following kind of graphs

Where the numbers of the axis are merged. The question is whether gnuplot can place them on different height, so that they will be distinguishable.
Or may be there is other way to make the graph readable.

A:

There are multiple ways to accomplish this depending on how the labels are generated.
Suppose that your data looks like
39 6
41 7
43 9
52 12
55 15
58 3
62 9
63 7
70 5
76 9
77 2
79 3

where I am trying to mimic the labels that you have in your example.
Approach 1
You can rotate the labels.  The command set xtics rotate by <angle> will rotate the labels by the given angle.
For this demonstration, I am going to set the xrange to 20-100, so that I can force labels to overlap like you have shown.  I also will explicitly specify tic marks (gnuplot's auto-generated marks do not often overlap), as I assume you have in your example beings they are not evenly spaced.
If, I just try to plot with plot datafile u 1:2:xtic(1), I am going to get overlapping labels

If I first issue set xtics rotate by -50 to rotate the labels by 50 degrees downward, and then plot with
plot datafile u 1:2:xtic(1)

I will get

which has significantly less overlap.  Using set xtics rotate by -90 will cut this further.
Approach 2
I can add a newline to every other tic mark to adjust heights to help avoid overlap.  This approach will only work if we are explicitly specifying tic marks.
We can define a function by
adjustlab(x,y) = (int(x)%2==0?y:sprintf("\n%s",y))

This function will take two inputs.  The first is a line number and the second is a label.  It will then add a newline if the line number is odd.
We need to first expand the bottom margin with set bmargin 3, and then we can plot with
plot datafile u 1:2:xtic(adjustlab($0,strcol(1)))

Note that we use the strcol function to read column 1 as a string to feed to our adjusting function.
This produces

More complicated functions can be constructed to allow more complicated conditions on the adjusting.

