Having a discontinuous y axis is common and Stackoverflow has a few solutions for that. I wanted an x axis with a gap (values 0-10 plus value 20). So this is what I did.
I create an axis from 0 to 12 and give 12 the label “20”. I add an extra tick on the x-axis at about halfway between 10 and “12”, where I want the gap and make it thick and white – basically I want a break in the axis. Then over that break I draw the “label” of this tick, which is two vertical lines at an angle, symbolizing the discontinuity. The relevant part of the style:
xmin=0, xmax=12.5, xticklabels={0, 2, 4, 6, 8, 10, 20}, extra x ticks={11.1}, extra x tick style={grid=none, tick style={white, very thick}, tick label style={xshift=0cm,yshift=.50cm, rotate=-20}}, extra x tick label={\color{black}{/\!\!/}},
And then I add the data with x-values 20 at x-coordinate “12”:
\addplot coordinates { (0, 43.3) (1, 43.2) (2, 43.3) (3, 42.9) (4, 42.1) (5, 41.4) (6, 41.2) (7, 41.7) (8, 41.7) (9, 42.1) (10, 42.1) }; \pgfplotsset{cycle list shift=-1} \addplot coordinates { (12, 43.8) }; \draw[dotted] (axis cs:10, 42.1) -- (axis cs:12, 43.8);
Adding the last point separately from the rest of the data serves the purpose that I can draw the dotted line by hand. cycle list shift=-1
causes the new “plot” to have the same style as the previous. There might be a way of doing this, but this works.
Hat tip: Stackoverflow, but I currently cannot find the question(s) and answer(s) that helped me solve this. Still, thank you, anonymous people.