Here's a vertical visibility graph for the icosahedral graph. Also called a scheduling graph. And maybe other names. Each open segment corresponds to a vertex. If there is unblocked vertical overlap between segments, they are connected.
I developed that by hand, and wondered if there was a canonical solution with smallest possible total segment length. I also wondered how to create these, and realized I knew the answer -- electrical networks, as were used for squaring the square. But the edge-square diagram for the icosahedral graph is murky to me. Squared rectangles of other Archimedean graphs are available.
Is there another good way to convert planar graphs to vertical visibility graphs? The representation above has width 11, with longest segment 11. If all overlaps have minimal length 1, is there a width 10 representation? How many distinct width 11 representations are there?
Combinatorially, I could look at the 36 segments of length 3 to 10, and then look at the 1251677700 ways to choose 12 of them. But it's possible for a segment to be repeated, like 1 & 2 in my current version. It's a feasible run, but there is likely something a lot more clever.
I posted some code at Interval Visibility Graphs.



It seems like this problem is similar to that of generating unit sliceable rectangles from the underlying graph. It's like a restricted layout problem where lines are only horizontal or vertical.
For your problem, you only have horizontal lines so it seems like it should be simpler. I would have thought that each segment should only be as long as the grid unit (1) multiplied by the degree of the vertex. Or to be more precise, the maximum of the degree of the 'upward' and 'downward' edges.
So, starting with the vertex with the maximum degree (which determines the maximum segment length) then a BFS search outward determines the length of all the other segments. I think that works.