2014-02-21 5 views
16

Ich bin ein Fan des Seaborn-Pakets, um mit Matplotlib schön aussehende Plots zu erstellen. Aber ich kann mir nicht vorstellen, wie man kleine Gitterlinien in meinen Zeichnungen darstellt.Fügen Sie dem Matplotlib-Plot unter Verwendung von Seaborn kleinere Gitterlinien hinzu.

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') 

gibt:

enter image description here

Alle hier Gedanken? Auch irgendwelche Gedanken darüber, wie man den Stil der Seaborn-Gitternetzlinien, die sich zeigen, anpassen kann ... insbesondere würde ich es lieben, sie enger zu machen.

Antwort

20

Wound up mit tcaswell des Hinweises Antwort CT Zhus Kombination:

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

+3

Kannst du ein Problem am Seaburn Github darüber aufmachen? Sie sollten die untergeordneten Gitternetzlinien nicht selbst gestalten müssen, aber ich denke, das ist ein Versehen im aktuellen Code. – mwaskom

6

Das ist, weil die kleinen Zecken sind noch nicht definiert, so müssen wir zum Beispiel hinzuzufügen:

ax.set_xticks(np.arange(0,8)-0.5, minor=True) 
ax.set_yticks([-1.25, -0.75, -0.25,0.24,0.75,1.25], minor=True) 

enter image description here

+5

Es ist besser zu 'ax.get_xaxis(). Set_minor_locat oder (...) ' – tacaswell

Verwandte Themen