Ich habe eine harte Zeit Plotten Gitterlinien unter meinen Graphen, ohne mit der Haupt x- und y-Achse ZOrder Messing:Matplotlib: Gitterlinien hinter dem Diagramm halten, aber die y- und x-Achse über
import matplotlib.pyplot as plt
import numpy as np
N = 5
menMeans = (20, 35, 30, 35, 27)
menStd = (2, 3, 4, 1, 2)
ind = np.arange(N) # the x locations for the groups
width = 0.35 # the width of the bars
fig, ax = plt.subplots()
rects1 = ax.bar(ind, menMeans, width, color='r', yerr=menStd, alpha=0.9, linewidth = 0,zorder=3)
womenMeans = (25, 32, 34, 20, 25)
womenStd = (3, 5, 2, 3, 3)
rects2 = ax.bar(ind+width, womenMeans, width, color='y', yerr=womenStd, alpha=0.9, linewidth = 0,zorder=3)
# add some
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind+width)
ax.set_xticklabels(('G1', 'G2', 'G3', 'G4', 'G5'))
ax.legend((rects1[0], rects2[0]), ('Men', 'Women'))
fig.gca().yaxis.grid(True, which='major', linestyle='-', color='#D9D9D9',zorder=2, alpha = .9)
[line.set_zorder(4) for line in ax.lines]
def autolabel(rects):
# attach some text labels
for rect in rects:
height = rect.get_height()
ax.text(rect.get_x()+rect.get_width()/2., 1.05*height, '%d'%int(height),
ha='center', va='bottom')
autolabel(rects1)
autolabel(rects2)
plt.show()
Das Beispiel ist von matplotlib selbst genommen, und ich habe ein wenig gezwängt, um zu zeigen, wie man das Problem erscheinen lässt. Ich kann Bilder nicht posten, aber wenn Sie den Code ausführen, werden Sie sehen, dass die Balken über den horizontalen Gitterlinien sowie über der x- und y-Achse geplottet werden. Ich möchte nicht, dass die X- und Y-Achse durch die Grafik verdeckt wird, besonders wenn die Zecken auch blockiert werden.
warum verwenden Sie 'fig.gca()' statt "Axt"? –
Aus Neugier: Weißt du, was die Linien in 'ax.lines' erzeugt? –
Sie richtig ist, war ich nur versucht, verloren, um herauszufinden, wie es zu tun, anstatt zu verstehen versuchen, wie alles funktioniert ... –