Как изменить цвет оси, меток и меток для графика в matplotlib

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

Любые идеи?


person Richard Durr    schedule 21.01.2011    source источник
comment
Дубликат оси: http://stackoverflow.com/questions/1982770/matplotlib-changing-the-color-of-an-axis   -  person Mark    schedule 21.01.2011


Ответы (4)


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

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

Альтернативно

[t.set_color('red') for t in ax.xaxis.get_ticklines()]
[t.set_color('red') for t in ax.xaxis.get_ticklabels()]
person Joe Kington    schedule 21.01.2011

Если у вас есть несколько рисунков или подзаголовков, которые вы хотите изменить, может быть полезно использовать 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))

введите описание изображения здесь

введите описание изображения здесь

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

# Search for all parameters containing the word 'color'
[(param, value) for param, value in plt.rcParams.items() if 'color' in param]
person joelostblom    schedule 07.01.2017

  • Для тех, кто использует pandas.DataFrame.plot(), _ 2_ возвращается при создании графика из фрейма данных. Таким образом, график фрейма данных может быть назначен переменной ax, которая позволяет использовать связанные методы форматирования.
  • Бэкэнд построения по умолчанию для pandas - matplotlib.
import pandas as pd

# test dataframe
data = {'a': range(20), 'date': pd.bdate_range('2021-01-09', freq='D', periods=20)}
df = pd.DataFrame(data)

# plot the dataframe and assign the returned axes
ax = df.plot(x='date', color='green', ylabel='values', xlabel='date', figsize=(8, 6))

# set various colors
ax.spines['bottom'].set_color('blue')
ax.spines['top'].set_color('red') 
ax.spines['right'].set_color('magenta')
ax.spines['left'].set_color('orange')
ax.xaxis.label.set_color('purple')
ax.yaxis.label.set_color('silver')
ax.tick_params(colors='red', which='both')  # 'both' refers to minor and major axes

введите описание изображения здесь

person Trenton McKinney    schedule 09.01.2021

мотивированный предыдущими участниками, это пример трех осей.

import matplotlib.pyplot as plt

x_values1=[1,2,3,4,5]
y_values1=[1,2,2,4,1]

x_values2=[-1000,-800,-600,-400,-200]
y_values2=[10,20,39,40,50]

x_values3=[150,200,250,300,350]
y_values3=[-10,-20,-30,-40,-50]


fig=plt.figure()
ax=fig.add_subplot(111, label="1")
ax2=fig.add_subplot(111, label="2", frame_on=False)
ax3=fig.add_subplot(111, label="3", frame_on=False)

ax.plot(x_values1, y_values1, color="C0")
ax.set_xlabel("x label 1", color="C0")
ax.set_ylabel("y label 1", color="C0")
ax.tick_params(axis='x', colors="C0")
ax.tick_params(axis='y', colors="C0")

ax2.scatter(x_values2, y_values2, color="C1")
ax2.set_xlabel('x label 2', color="C1") 
ax2.xaxis.set_label_position('bottom') # set the position of the second x-axis to bottom
ax2.spines['bottom'].set_position(('outward', 36))
ax2.tick_params(axis='x', colors="C1")
ax2.set_ylabel('y label 2', color="C1")       
ax2.yaxis.tick_right()
ax2.yaxis.set_label_position('right') 
ax2.tick_params(axis='y', colors="C1")

ax3.plot(x_values3, y_values3, color="C2")
ax3.set_xlabel('x label 3', color='C2')
ax3.xaxis.set_label_position('bottom')
ax3.spines['bottom'].set_position(('outward', 72))
ax3.tick_params(axis='x', colors='C2')
ax3.set_ylabel('y label 3', color='C2')
ax3.yaxis.tick_right()
ax3.yaxis.set_label_position('right') 
ax3.spines['right'].set_position(('outward', 36))
ax3.tick_params(axis='y', colors='C2')


plt.show()
person cosmos    schedule 04.05.2020