Изменение цвета оси, галочек и меток для сюжета в matplotlib - PullRequest
69 голосов
/ 21 января 2011

Я бы хотел изменить цвет оси, а также метки и метки значений для графика, который я сделал, используя matplotlib и PyQt.

Есть идеи?

Ответы [ 2 ]

111 голосов
/ 21 января 2011

В качестве быстрого примера (с использованием немного более чистого метода, чем потенциально дублирующий вопрос):

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

25 голосов
/ 08 января 2017

Если у вас есть несколько рисунков или вспомогательных участков, которые вы хотите изменить, может быть полезно использовать диспетчер контекста matplotlib для изменения цвета, вместо того, чтобы менять каждую по отдельности.Диспетчер контекста позволяет временно изменять параметры rc только для сразу следующего кода с отступом, но не влияет на глобальные параметры rc.

Этот фрагмент дает два рисунка, первый с измененными цветами для оси,тики и метки, а второй со стандартными параметрами 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))

enter image description here

enter image description here

Вы можете набрать plt.rcParams, чтобы просмотреть все доступные параметры rc, и использовать понимание списка для поиска по ключевым словам:

# Search for all parameters containing the word 'color'
[(param, value) for param, value in plt.rcParams.items() if 'color' in param]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...