Zmiana koloru osi, kleszczy i etykiet dla wykresu w matplotlib

Chciałbym zmienić kolor osi, a także kleszcze i etykiety wartości dla wykresu, który zrobiłem za pomocą matplotlib i PyQt.

Jakieś pomysły?

Author: Richard Durr, 2011-01-21

2 answers

Jako szybki przykład (używając nieco czystszej metody niż potencjalnie zduplikowane pytanie):

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot(range(10))
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')

ax.spines['bottom'].set_color('red')
ax.spines['top'].set_color('red')
ax.xaxis.label.set_color('red')
ax.tick_params(axis='x', colors='red')

plt.show()

alt text

 91
Author: Joe Kington,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-21 17:44:30

Jeśli masz kilka rysunków lub podprogramów, które chcesz zmodyfikować, pomocne może być użycie menedżera kontekstu matplotlib do zmiany koloru, zamiast zmieniania każdego z nich z osobna. Menedżer kontekstu pozwala na tymczasową zmianę parametrów rc tylko dla następującego bezpośrednio po wciętym kodzie, ale nie wpływa na globalne parametry RC.

Ten fragment daje dwie cyfry, pierwsza ze zmodyfikowanymi kolorami dla osi, kleszczy i znaczników, a druga jeden z domyślnymi parametrami rc.

import matplotlib.pyplot as plt
with plt.rc_context({'axes.edgecolor':'orange', 'xtick.color':'red', 'ytick.color':'green', 'figure.facecolor':'white'}):
    # Temporary rc parameters in effect
    fig, (ax1, ax2) = plt.subplots(1,2)
    ax1.plot(range(10))
    ax2.plot(range(10))
# Back to default rc parameters
fig, ax = plt.subplots()
ax.plot(range(10))

Tutaj wpisz opis obrazka

Tutaj wpisz opis obrazka

Możesz wpisać plt.rcParams, aby wyświetlić wszystkie dostępne parametry rc i użyć listy do wyszukania słów kluczowych:

# Search for all parameters containing the word 'color'
[(param, value) for param, value in plt.rcParams.items() if 'color' in param]
 19
Author: joelostblom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-07 21:59:18