Zamiast domyślnego stylu osi „w ramce” chcę mieć tylko lewą i dolną oś, tj .:
+------+ |
| | |
| | ---> |
| | |
+------+ +-------
To powinno być łatwe, ale nie mogę znaleźć niezbędnych opcji w dokumentacji.
python
matplotlib
Michael Kuhn
źródło
źródło
spine
obiektu i nie odgadłbym tego słowa kluczowego.Alternatywnie to
def simpleaxis(ax): ax.spines['top'].set_visible(False) ax.spines['right'].set_visible(False) ax.get_xaxis().tick_bottom() ax.get_yaxis().tick_left()
wydaje się, że osiąga ten sam efekt na osi bez utraty obsługi obracanych etykiet.
(Matplotlib 1.0.1; rozwiązanie zainspirowane tym ).
źródło
[edytuj] matplotlib w now (2013-10) w wersji 1.3.0, która to obejmuje
Ta umiejętność została właśnie dodana i potrzebujesz do niej wersji Subversion. Przykładowy kod można zobaczyć tutaj .
Aktualizuję tylko, aby powiedzieć, że jest teraz lepszy przykład online. Jednak nadal potrzebuję wersji Subversion, nie było jeszcze wydania z nią.
[edytuj] Matplotlib 0.99.0 RC1 został właśnie wydany i zawiera tę możliwość.
źródło
mpl.subplots
nie mogą być używane w ten sposób?(Jest to bardziej komentarz dotyczący rozszerzenia, oprócz wyczerpujących odpowiedzi tutaj).
Zauważ, że możemy ukryć każdy z tych trzech elementów niezależnie od siebie:
Aby ukryć obramowanie (inaczej „kręgosłup”):
ax.set_frame_on(False)
lubax.spines['top'].set_visible(False)
Aby ukryć kleszcze:
ax.tick_params(top=False)
Aby ukryć etykiety:
ax.tick_params(labeltop=False)
źródło
Jeśli nie potrzebujesz znaczników i tym podobnych (np. Do rysowania ilustracji jakościowych), możesz również skorzystać z tego szybkiego obejścia:
Uczyń oś niewidoczną (np. Za pomocą
plt.gca().axison = False
), a następnie narysuj je ręcznieplt.arrow
.źródło
Biblioteka Seaborn ma to wbudowane z funkcją despine ().
Poprostu dodaj:
import seaborn as sns
Teraz stwórz swój wykres. I na końcu dodaj:
Jeśli spojrzysz na niektóre z domyślnych wartości parametrów funkcji, usunie ona górny i prawy grzbiet i zachowa dolny i lewy grzbiet:
sns.despine(top=True, right=True, left=False, bottom=False)
Sprawdź dalszą dokumentację tutaj: https://seaborn.pydata.org/generated/seaborn.despine.html
źródło
Jeśli chcesz usunąć go ze wszystkich swoich wykresów, możesz usunąć grzbiety w ustawieniach stylu (arkusz stylów lub rcParams). Na przykład:
import matplotlib as mpl mpl.rcParams['axes.spines.right'] = False mpl.rcParams['axes.spines.top'] = False
Jeśli chcesz usunąć wszystkie kolce:
mpl.rcParams['axes.spines.left'] = False mpl.rcParams['axes.spines.right'] = False mpl.rcParams['axes.spines.top'] = False mpl.rcParams['axes.spines.bottom'] = False
źródło