Python matplotlib使日期的轴标记标签加粗

Python matplotlib使日期的轴标记标签加粗,python,matplotlib,tex,Python,Matplotlib,Tex,我希望在轴上有粗体标签,以便可以使用绘图进行发布。我还需要将图例中线条的标签用粗体绘制。 到目前为止,我可以将轴标签和图例设置为我想要的大小和重量。我还可以将轴标签的大小设置为我想要的大小,但是我的重量不够 下面是一个示例代码: # plotting libs from pylab import * from matplotlib import rc if __name__=='__main__': tmpData = np.random.random( 100 ) # act

我希望在轴上有粗体标签,以便可以使用绘图进行发布。我还需要将图例中线条的标签用粗体绘制。 到目前为止,我可以将轴标签和图例设置为我想要的大小和重量。我还可以将轴标签的大小设置为我想要的大小,但是我的重量不够

下面是一个示例代码:

# 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()
这就是我得到的:

你知道为了得到粗体的轴刻度标签我遗漏了什么或做错了什么吗

编辑

我已经使用toms响应更新了我的代码。然而,我现在有另一个问题,因为我需要在x轴上使用
datetime
,这与在正常y轴上的效果不同(很抱歉,没有在原始问题中加入这一点,但我认为这不会改变事情):

现在我的结果如下所示:


这些更改似乎不会影响x轴记号标签的显示或重量。

我认为问题在于记号是在LaTeX数学模式下生成的,因此字体属性不适用

您可以通过使用
rcParams
向LaTeX前导添加正确的命令来解决这个问题。具体来说,您需要使用\boldmath来获取正确的wieght,并使用\usepackage{sfmath}来获取sans serif字体

此外,您还可以使用
set_tick_params
设置刻度标签的字体大小

这里有一些代码可以满足您的需要:

import numpy as np
from matplotlib import rc,rcParams
from pylab import *

tmpData = np.random.random( 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)

legend()
使用


谢谢汤姆,这至少有一点帮助。但是,由于我需要在x轴上使用日期,这些日期的显示方式与y轴不同。另请参见我更新/编辑的问题。我已找到解决方案。我需要做的是将进入
DateFormatter
的字符串格式化如下:
ax.xaxis.set\u major\u格式化程序(dates.DateFormatter(r'\textbf{%m/%Y}'))
@red\u tiger:我想你应该接受答案。。日期格式是你一开始没有问过的。@George你说得对。答案很好,我找到了其余的答案。请不要只发布代码作为答案,还要解释代码的作用以及它是如何解决问题的。带有解释的答案通常更有帮助,质量更好,更容易吸引选票。使用列表理解只是为了循环混淆代码<代码>用于标签中的标签:label.set_fontwweight('bold')将使代码更清晰。非常感谢!伙伴
import numpy as np
from matplotlib import rc,rcParams
from pylab import *

tmpData = np.random.random( 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)

legend()
plt.xticks(x, weight = 'bold')
labels = axes.get_xticklabels() + axes.get_yticklabels()
    [label.set_fontweight('bold') for label in labels]