Я хочу иметь жирные надписи на моей оси, поэтому я могу использовать сюжет для публикации. Мне также нужно иметь метку линий в легенде, выделенной жирным шрифтом. Пока я могу установить метки оси и легенду на размер и вес, которые я хочу. Я также могу установить размер меток оси для размера, который я хочу, однако я терпеть неудачу с весом.matplotlib make axis ticks label для дат жирным
Вот пример кода:
# plotting libs
from pylab import *
from matplotlib import rc
if __name__=='__main__':
tmpData = np.random.random(100)
# activate latex text rendering
rc('text', usetex=True)
rc('axes', linewidth=2)
rc('font', weight='bold')
#create figure
f = figure(figsize=(10,10))
ax = gca()
plot(np.arange(100), tmpData, label=r'\textbf{Line 1}', linewidth=2)
ylabel(r'\textbf{Y-AXIS}', fontsize=20)
xlabel(r'\textbf{X-AXIS}', fontsize=20)
fontsize = 20
fontweight = 'bold'
fontproperties = {'family':'sans-serif','sans-serif':['Helvetica'],'weight' : fontweight, 'size' : fontsize}
ax.set_xticklabels(ax.get_xticks(), fontproperties)
ax.set_yticklabels(ax.get_yticks(), fontproperties)
for tick in ax.xaxis.get_major_ticks():
tick.label1.set_fontsize(fontsize)
for tick in ax.yaxis.get_major_ticks():
tick.label1.set_fontsize(fontsize)
legend()
show()
sys.exit()
И это то, что я получаю:
Любая идея, что я пропускаю или делаю неправильно, чтобы получить ось клещей метку жирным шрифтом?
EDIT
Я обновил свой код, используя Toms ответ. Однако у меня теперь есть еще одна проблема, так как мне нужно использовать datetime
по оси x, это не имеет такого же эффекта, как на нормальной оси y (извините за то, что вы не ввели это в исходный вопрос, но я не думал, что это бы изменить положение вещей):
# plotting libs
from pylab import *
from matplotlib import rc, rcParams
import matplotlib.dates as dates
# datetime
import datetime
if __name__=='__main__':
tmpData = np.random.random(100)
base = datetime.datetime(2000, 1, 1)
arr = np.array([base + datetime.timedelta(days=i) for i in xrange(100)])
# activate latex text rendering
rc('text', usetex=True)
rc('axes', linewidth=2)
rc('font', weight='bold')
rcParams['text.latex.preamble'] = [r'\usepackage{sfmath} \boldmath']
#create figure
f = figure(figsize=(10,10))
ax = gca()
plot(np.arange(100), tmpData, label=r'\textbf{Line 1}', linewidth=2)
ylabel(r'\textbf{Y-AXIS}', fontsize=20)
xlabel(r'\textbf{X-AXIS}', fontsize=20)
ax.xaxis.set_tick_params(labelsize=20)
ax.yaxis.set_tick_params(labelsize=20)
ax.xaxis.set_major_formatter(dates.DateFormatter('%m/%Y'))
ax.xaxis.set_major_locator(dates.MonthLocator(interval=1))
legend()
Теперь мой результат выглядит следующим образом:
Казалось бы, что изменения лани не влияют на отображение или, вернее, вес оси х клещи этикетки.
Благодаря том, что это помогает, по крайней мере немного. Однако, поскольку мне нужно использовать даты на моей оси x, они не отображаются так же, как и ось y. См. Также мой обновленный/отредактированный вопрос. –
Я нашел решение. Что мне нужно сделать, это форматировать строку, которая входит в 'DateFormatter' следующим образом: ' ax.xaxis.set_major_formatter (date.DateFormatter (r '\ textbf {% m /% Y}')) ' –
@red_tiger: Я думаю, вы должны принять ответ. Формат даты - это то, о чем вы не спрашивали в первую очередь. – George