2015-05-07 2 views
8

Я настраиваю пользовательскую таблицу стилей в mpl. Я нашел и изменил некоторые параметры в Интернете:matplotlib: set title color in stylesheet

axes.titlesize : 18 
axes.labelsize : large 
axes.labelcolor : ffffff 

Я также хочу изменить цвет шрифта заголовка. Из этих настроек axes.titlecolor казался хорошим догадком, но он не работает. Есть идеи, как это сделать?

+0

@TheChymera Оба ответы ниже правильны. Что еще вы хотели бы знать? – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest Ни один из ответов не отвечает на вопрос («set title in stylesheet»). То, что я хотел бы знать, - это то, как цвет заголовка может быть определен через таблицу стилей. – TheChymera

+0

@ TheChymera. Из обоих ответов вы можете видеть, что настройка цвета заголовка только через таблицу стилей невозможна. Я не совсем понимаю, как здесь поможет новый ответ, говорящий еще раз о том, что это невозможно. – ImportanceOfBeingErnest

ответ

2

Я не совсем знаком с тем, как реально выполняются таблицы стилей Mpl, но я предполагаю, что они только что предварительно отредактировали файлы mpl rc.

Если они действительно являются mpl-rc-файлами, то на основе чтения моего текущего файла rc в «Оси» нет цвета для заголовка.

Моя работа вокруг для добавления стилистических функций, которые могут или не могут быть реализованы в РЦ файлах делать что-то вроде:

using_custom_style = true 
plt.use('my_style') 
... 
if using_custom_style: 
    ax.set_title('my title', color=my_color_of_choice) 
else: 
    ax.set_title('my_title') # this doesn't specify a color so it will just use whatever default vaule mpl knows to use 

Ее не лучший обходной пути, поскольку он добавляет много беспорядка о коде но это единственное, что я нашел, чтобы работать, когда я не могу понять, где значение по умолчанию действительно хранится в файлах или таблицах параметров mpl.

анализ файл MPL гс, если запустить что-то вроде «Grep заголовка matplotlibrc» он выплевывает единственные экземпляры, которые он находит название слова в файле:

# специальный текст размеров тикают этикетки, оси, метки, заголовок и т.д., см РЦ

# axes.titlesize: большой # FontSize названия осей

, так что, кажется, не будет настройка цвета по умолчанию для заголовка - или, вернее, если тис там его называют что-то другое, что прямо не очевидно

«grep color matplotlibrc» выводит все экземпляры цвета слова в файле rc

Опять же, похоже, что ничего не было связано с цветами заголовков или цветом текста по умолчанию.

Если вы посмотрите немного ближе к API Mpl, axes.set_title() принимает kwargs как color =, которые просто помечены как допустимые свойства Text.

http://matplotlib.org/1.4.3/api/text_api.html#matplotlib.text.Text содержит допустимые свойства текста. Для цвета все, что он говорит, это «любой цвет matplotlib»

Я бы предположил, что где-то в исходном коде mpl есть строка, которая обрабатывает, что делать, если для заданного объекта Text не указан цвет kwarg. Где-то есть цвет по умолчанию, который, я думаю, вероятно, просто «k». Мне пока не ясно, как изменить эту настройку.

Извините за долгий дискурс, надеюсь, это поможет некоторым.

2

Может быть, бит позже ответит, но в любом случае) Если вы хотите изменить цвет названия по умолчанию, вы можете установить свойство text.color в файле matplotrc (по умолчанию черный). Конечно, это изменит цвета всех ваших текстовых выходов.

-1

Это может работать (Refrenced From Here)

title_obj = plt.title('my random fig') 
plt.getp(title_obj)      
plt.getp(title_obj, 'text')    
plt.setp(title_obj, color='r') #Sets it to the color red