W Matplotlib tworzę przerywane linie siatki w następujący sposób:
fig = pylab.figure()
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')
jednak nie mogę się dowiedzieć, jak (ani nawet jeśli jest to możliwe), aby linie siatki były rysowane za innymi elementami wykresu, takimi jak słupki. Zmiana kolejności dodawania siatki w porównaniu z dodawaniem innych elementów nie ma znaczenia.
Czy jest możliwe, aby linie siatki pojawiały się za wszystkim innym?
python
matplotlib
grid
Andrzej
źródło
źródło
ax.set_axisbelow(True)
nadal działa. Przyjemny również dla wyjścia PDF ...ax.set_axisbelow(True)
się, że będzie to domyślny ...Odpowiedzi:
Zgodnie z tym - http://matplotlib.1069221.n5.nabble.com/axis-elements-and-zorder-td5346.html - możesz użyć
Axis.set_axisbelow(True)
(Obecnie instaluję matplotlib po raz pierwszy, więc nie mam pojęcia, czy to prawda - znalazłem to po prostu wpisując w Google "matplotlib z order grid" - "Z order" jest zwykle używane do opisania tego rodzaju rzeczy (z jest osią „poza stroną”))
źródło
Nie było dla mnie jasne, jak zastosować odpowiedź Andrew Cooke, więc jest to kompletne rozwiązanie oparte na tym:
źródło
Jeśli chcesz sprawdzić poprawność ustawienia dla wszystkich figur, możesz ustawić
lub
Działa dla Matplotlib> = 2.0.
źródło
Miałem ten sam problem i działały:
Zwiększ
3
do wyższej wartości, jeśli nie działa.źródło