Matplotlib: контроль цвета шрифта, ширина строки

Я использую некоторые простые функции matplotlib для рисования круговой диаграммы:

f = figure (...) pie (fracs, explode = explode,...)

Однако я не мог узнать, как установить цвет шрифта по умолчанию, цвет линии, размер шрифта - или передать их в pie(). Как это делается?

Ответы

Ответ 1

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

import matplotlib
matplotlib.rcParams['text.color'] = 'r'
matplotlib.rcParams['lines.linewidth'] = 2

Полный список параметров можно найти здесь.

Вы также можете настроить ширину линии после рисования круговой диаграммы:

from matplotlib import pyplot as plt
fig = plt.figure(figsize=(8,8))
pieWedgesCollection = plt.pie([10,20,50,20],labels=("one","two","three","four"),colors=("b","g","r","y"))[0] #returns a list of matplotlib.patches.Wedge objects
pieWedgesCollection[0].set_lw(4) #adjust the line width of the first one.

К сожалению, я не могу найти способ настроить цвет шрифта или размер ярлыков круговой диаграммы из метода пирога или объекта Wedge. Посмотрев в источнике axes.py(строки 4606 на matplotlib 99.1), они создаются с использованием метода Axes.text. Этот метод может принимать аргумент цвета и размера, но в настоящее время он не используется. Без редактирования источника, ваш единственный вариант может состоять в том, чтобы сделать это глобально, как описано выше.

Ответ 2

Показывая немного поздно для вечеринки, но я столкнулся с этой проблемой и не хотел изменять свои rcParams.

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

Подробнее о использовании matplotlib.font_manager вы можете узнать здесь: http://matplotlib.sourceforge.net/api/font_manager_api.html

Встроенные размеры шрифтов перечислены в api; "size: Либо относительное значение" xx-small "," x-small "," small "," medium "," large "," x-large "," xx-large "или" absolute font size ", например 12"

from matplotlib import pyplot as plt
from matplotlib import font_manager as fm

fig = plt.figure(1, figsize=(6,6))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
plt.title('Raining Hogs and Dogs')

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
fracs = [15,30,45, 10]

patches, texts, autotexts = ax.pie(fracs, labels=labels, autopct='%1.1f%%')

proptease = fm.FontProperties()
proptease.set_size('xx-small')
plt.setp(autotexts, fontproperties=proptease)
plt.setp(texts, fontproperties=proptease)

plt.show()

alt text

Ответ 3

matplotlib.rcParams['font.size'] = 24

изменяет размер шрифта ярлыков круговой диаграммы