使用Matplotlib将字体属性设置为刻度标签

时间:2011-08-31 13:11:35

标签: python matplotlib

我正在尝试使用matplotlib将标签字体的刻度标签字体更改为Times New Roman。我认为这应该像更改标题和轴标签的字体一样简单,但事实证明它有点棘手。目前,我只是想设置x-tick标签的字体,这是自动编码的日期(这可能是我的一个问题,但我不确定)。

当运行以下相关代码片段时,我收到“Axessubplot的无属性'set_fontproperties'错误。

ticks_font = matplotlib.font_manager.FontProperties(family='times new roman', style='normal', size=12, weight='normal', stretch='normal')

fig.autofmt_xdate()
ax.fmt_xdata = mdates.DateFormatter('%Y-%m-%d')
for label in ax.get_xticklabels():
    ax.set_fontproperties(ticks_font)

非常感谢任何帮助。

感谢。

更新/编辑:啊,我觉得自己像个蠢货。刚想通了,一旦我意识到这一点就很明显了。在上面的代码片段中,答案是:

label.set_fontproperties(ticks_font)

2 个答案:

答案 0 :(得分:7)

如果您运行脚本,也可以在使用参数列表运行命令之前设置它。如下面摘自我的剧本:

fig_size = [fig_width, fig_height] 
tick_size = 9
fontlabel_size = 10.5
params = {
    'backend': 'wxAgg',
    'lines.markersize' : 2,
    'axes.labelsize': fontlabel_size,
    'text.fontsize': fontlabel_size,
    'legend.fontsize': fontlabel_size,
    'xtick.labelsize': tick_size,
    'ytick.labelsize': tick_size,
    'text.usetex': True,
    'figure.figsize': fig_size
}
plt.rcParams.update(params)

或者,如果你想这样做,那就运行:

for label in ax.get_xticklabels() :
    label.set_fontproperties(ticks_font)

获取每个标签,其中包含您可以为其设置的所有文本属性。

答案 1 :(得分:1)

http://matplotlib.sourceforge.net/users/customizing.html

  

自定义matplotlib: matplotlib使用matplotlibrc配置文件来自定义各种属性,我们称之为rc设置或rc参数。您可以控制matplotlib中几乎每个属性的默认值:数字大小和dpi,线宽,颜色和样式,轴,轴和网格属性,文本和字体属性等。“ ...