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
изменяет размер шрифта ярлыков круговой диаграммы