我想在不增加标签作为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()
现在我想做的是增加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()
fontsize确实增加了,但是标签和比例与原始图不同。我需要能够更改任何数组y
的字体大小,而不仅仅是上面给出的示例,因此不可能传递特定的标签。
理想情况下,我想要的是这样的:与第一个图中相同的标签和比例,但是y-ticks字体大小更大。我想在每次绘图时都无需传递标签即可生成该绘图,因为我的x和y变量是动态的。有没有办法做到这一点?
答案 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()