only vertical grid lines?

has vertical grid lines ONLY on the minor ticks, which

    > looks silly. How do I get regularly spaced grid lines
    > here?

This is a consequence of the fact that the ticker skips minor ticks
which coincide with major ticks. I am not sure this is the right
behavior, but was implemented to avoid other problems (overlapping
gridlines, for example, with anti-aliasing produces undesirable
results). All you need to do is turn both major and minor grids on

    ax.xaxis.grid(True, which="minor")
    ax.xaxis.grid(True, which="major")

Should work....