2009-12-30 3 views
33

Есть ли способ изменить цвет оси (не тиков) в matplotlib? Я просматривал документы для Axes, Axis и Artist, но не повезло; в галерее matplotlib также нет намека. Любая идея?Matplotlib: Изменение цвета оси

ответ

61

При использовании цифры, вы можете легко изменить цвет позвоночника с:

ax.spines['bottom'].set_color('#dddddd') 
ax.spines['top'].set_color('#dddddd') 
ax.spines['right'].set_color('red') 
ax.spines['left'].set_color('red') 

Используйте следующее изменить только тики:

ax.tick_params(axis='x', colors='red') 
ax.tick_params(axis='y', colors='red') 

И следующее, чтобы изменить только ярлык:

ax.yaxis.label.set_color('red') 
ax.xaxis.label.set_color('red') 

И, наконец, название:

ax.title.set_color('red') 
+3

Отличный ответ, спасибо! Просто примечание для кого-либо еще: '' ax.tick_params (axis = 'x', colors = 'red', which = 'both') '' - which = "both" изменяет как основные, так и малые цвета тика. – kinverarity

+0

'ax.tick_params (axis = 'x', colors = 'red')' похоже, меняет цвет как галочки, так и метки ... – Jonathan

+0

Можно ли использовать 'ax.yaxis.label.set_color (' серый ') 'таким образом, что только тики от' y1' до 'y2' меняют свой цвет, а остальные остаются неизменными? – FaCoffee

16

Для записи, это то, как мне удалось заставить его работать:

fig = pylab.figure() 
ax = fig.add_subplot(1, 1, 1) 
for child in ax.get_children(): 
    if isinstance(child, matplotlib.spines.Spine): 
     child.set_color('#dddddd') 
+0

+1, намного лучше, чем при использовании глобального rc. – Mark

+0

спасибо за это, надеюсь, matplotlib добавит более простой способ достижения этого. – jhanifen

7

Вы можете сделать это путем настройки параметров РЦ по умолчанию.

import matplotlib 
from matplotlib import pyplot as plt 

matplotlib.rc('axes',edgecolor='r') 
plt.plot([0, 1], [0, 1]) 
plt.savefig('test.png') 
+0

Matplotlib также имеет [контекстный менеджер] (http://matplotlib.org/users/style_sheets.html#temporary-styling), который позволяет временно изменять параметры rc http://stackoverflow.com/a/41527038/2166823 –