Użyłem Matplotlib do rysowania linii na figurze. Teraz chciałbym teraz ustawić styl, a konkretnie znacznik, dla poszczególnych punktów na linii. Jak mam to zrobic?
Aby wyjaśnić moje pytanie, chcę móc ustawić styl dla poszczególnych znaczników na linii, a nie dla każdego znacznika na tej linii.
python
matplotlib
dbmikus
źródło
źródło
Odpowiedzi:
Podaj słowo kluczowe args
linestyle
i / lubmarker
w wywołaniuplot
.Na przykład używając przerywanej linii i niebieskich kółek:
Skrót do tego samego:
Oto lista możliwych stylów linii i znaczników:
edytuj: z przykładem zaznaczenia dowolnego podzbioru punktów, zgodnie z prośbą w komentarzach:
Ten ostatni przykład użycia
markevery
kwarg jest możliwy od wersji 1.4+, ze względu na połączenie tej gałęzi funkcji . Jeśli utkniesz na starszej wersji matplotlib, nadal możesz osiągnąć wynik, nakładając wykres rozrzutu na wykres liniowy. Więcej informacji znajdziesz w historii zmian .źródło
matplotlib.markers.MarkerStyle.markers
, co zwraca słownik podobny do tego, który opublikował powyżej wim.Jest zdjęcie pokazujące nazwy i opisy wszystkich markerów, mam nadzieję, że ci to pomoże.
źródło
Na przyszłość -
Line2D
powracający artystaplot()
ma równieżset_markevery()
metodę, która pozwala na ustawienie znaczników tylko w określonych punktach - patrz https://matplotlib.org/api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D. set_markeveryźródło
Prostą sztuczką do zmiany określonego kształtu, rozmiaru znacznika punktu ... jest najpierw narysowanie go ze wszystkimi innymi danymi, a następnie wykreślenie jeszcze jednego wykresu tylko z tym punktem (lub zestawem punktów, jeśli chcesz zmienić styl wielu punktów) . Załóżmy, że chcemy zmienić kształt znacznika drugiego punktu:
Wynik: Działka z wieloma znacznikami
źródło