Search code examples
pythonmatplotlibseaborngridlines

Add minor gridlines


But I can't seem to figure out how to show minor gridlines in my plots with a seaborn style.

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sbn

x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

fig, ax = plt.subplots(1, 1)
ax.scatter(x, y)

ax.grid(b=True, which='major')
ax.grid(b=True, which='minor')

enter image description here

Any thoughts here? Also any thoughts on how to adjust the style of the Seaborn gridlines that do show up...in particular, I'd love to make them narrower.


Solution

  • Wound up combining CT Zhu's answer with tcaswell's hint:

    import numpy as np
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    import seaborn as sbn
    
    x = np.linspace(0, 2 * np.pi, 100)
    y = np.sin(x)
    
    fig, ax = plt.subplots(1, 1)
    
    ax.scatter(x, y)
    ax.get_xaxis().set_minor_locator(mpl.ticker.AutoMinorLocator())
    ax.get_yaxis().set_minor_locator(mpl.ticker.AutoMinorLocator())
    ax.grid(b=True, which='major', color='w', linewidth=1.0)
    ax.grid(b=True, which='minor', color='w', linewidth=0.5)
    

    enter image description here