Tworzę wykres rozproszenia w Matplotlib i muszę zmienić tło rzeczywistego wykresu na czarny. Wiem, jak zmienić kolor twarzy fabuły za pomocą:
fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')
Moim problemem jest to, że zmienia to kolor przestrzeni wokół fabuły. Jak zmienić rzeczywisty kolor tła wykresu?
python
matplotlib
użytkownik1764386
źródło
źródło
ax.patch.set_facecolor('black')
(gdzieax
jest instancja osi).fig.patch
jest tłem figury iax.patch
tłem osi.Odpowiedzi:
Użyj
set_facecolor(color)
metodyaxes
obiektu , którą utworzyłeś na jeden z następujących sposobów:Utworzyłeś razem figurę i oś / es
Utworzyłeś figurę, a następnie oś / os później
Użyłeś stanowego interfejsu API (jeśli robisz coś więcej niż kilka wierszy, a zwłaszcza jeśli masz wiele wykresów, powyższe metody obiektowe ułatwiają życie, ponieważ możesz odwoływać się do konkretnych liczb, rysować na określonych osiach i dostosowywać zarówno)
Następnie możesz użyć
set_facecolor
:Aby odświeżyć, jakie kolory mogą być:
źródło
MethodNotFound
Jedną z metod jest ręczne ustawienie domyślnego koloru tła osi w skrypcie (patrz Dostosowywanie matplotlib ):
Jest to sprzeczne z metodą Nicka T, która zmienia kolor tła dla określonego
axes
obiektu. Resetowanie ustawień domyślnych jest przydatne, jeśli tworzysz wiele różnych wykresów o podobnych stylach i nie chcesz ciągle zmieniać różnychaxes
obiektów.Uwaga: Odpowiednik dla
z twojego pytania jest:
źródło
Coś takiego? Użyj
axisbg
słowa kluczowego, abysubplot
:(Oczywiście, nie jest to rozproszony wykres, a nie czarne tło).
źródło
plt.subplot('111', axisbg='black')
przed komendami drukowania, używając Windows.axis_bg
axis_bgcolor
Były przestarzałe w matplotlib 2.0.0 i usunięto matplotlib 2.2.0Jeśli masz już
axes
przedmiot, podobnie jak w Nick T odpowiedź „s , można również użyćźródło
Jedną z sugestii w innych odpowiedziach jest użycie
ax.set_axis_bgcolor("red")
. Jest to jednak przestarzałe i nie działa na MatPlotLib> = v2.0.Istnieje również sugestia użycia
ax.patch.set_facecolor("red")
(działa zarówno na MatPlotLib v1.5, jak i v2.2). Chociaż działa to dobrze, jeszcze łatwiejsze jest użycie v2.0 +ax.set_facecolor("red")
źródło
ax.set_axis_bgcolor("black")
działa na Python v2.7.14 / MPL v1.5.1, aleax.set_facecolor()
nie działa. Gdzieś pomiędzy MPL v1.5.1 a v2.2.0 została przełączona odpowiednia funkcja.ax.patch.set_facecolor("red")
. Zalecana nakrętka z Matplotlib 2.0 toax.set_facecolor
.Najłatwiej jest prawdopodobnie podać kolor podczas tworzenia wykresu:
lub
źródło
prostsza odpowiedź:
źródło