如何在不传递标签的情况下使用matplotlib增加刻度字体大小?

时间:2018-08-30 09:29:07

标签: python matplotlib

我想在不增加标签作为ax.set_yticklabels()的输入参数的情况下增加绘图(x和y轴)上的刻度字体大小。

例如,假设我下面有y数据(对于本示例,x数据无关紧要,因此您可以设置x=np.arange(len(y))

import numpy as np
import matplotlib.pylab as plt
y = np.array([ 5840.5,  3579.5,  2578. ,   965.5,   748. ,   485. ])
fig,ax = plt.subplots(figsize=(12,8))
plt.plot(np.arange(len(y)), y)
plt.show()

enter image description here

现在我想做的是增加y-ticks的字体大小,但是我想将标签保留为与matplotlib创建它们相同的位置。所以我尝试了

ax.set_yticklabels(fontsize=20)
>>> TypeError: set_yticklabels() missing 1 required positional argument: 'labels'

这当然不起作用。但是如果我通过一些标签作为参数

y = np.array([ 5840.5,  3579.5,  2578. ,   965.5,   748. ,   485. ])
fig,ax = plt.subplots(figsize=(12,8))
plt.plot(np.arange(len(y)), y)
ax.set_yticklabels(np.arange(0,y.max(),1000), fontsize=20)
plt.show()

enter image description here

fontsize确实增加了,但是标签和比例与原始图不同。我需要能够更改任何数组y的字体大小,而不仅仅是上面给出的示例,因此不可能传递特定的标签。

理想情况下,我想要的是这样的:与第一个图中相同的标签和比例,但是y-ticks字体大小更大。我想在每次绘图时都无需传递标签即可生成该绘图,因为我的x和y变量是动态的。有没有办法做到这一点? enter image description here

2 个答案:

答案 0 :(得分:1)

您可以设置ytick rc参数,该参数将使用以下命令更改每个后续图的ytick字体大小:

import matplotlib
matplotlib.rc('ytick', labelsize=20)

或者,如果您只想对一个图形执行此操作,则可以遍历每个标签并更改字体大小:

for label in ax.get_yticklabels():
    label.set_fontsize(20)

答案 1 :(得分:0)

您可以按以下方式使用plt.yticks()

fig,ax = plt.subplots(figsize=(12,8))
plt.plot(np.arange(len(y)), y)
plt.yticks(fontsize=20)

plt.show()