0

我有这个 Python 代码来绘制一个图形:

matplotlib.rcParams['axes.unicode_minus'] = False
fig = plt.figure()
ax = fig.add_subplot(111)

我绘制了沿 x 和 y 循环运行的每个图,如下所示:

ax.plot(x, y, dotFormat)
ax.errorbar(x, y, yerr=errorStd, fmt=dotFormat)

最后,我设置轴并使用交互式导航显示图表:

ax.grid(True)
ax.set_title(chartTitle)

fontsize=10

ax.set_ylabel(yLabel, fontsize=fontsize+2)
ax.set_xlabel(xLabel+'\n', fontsize=fontsize+2)

ax.set_yticklabels(ax.get_yticks(), fontsize=fontsize)
ax.set_xticks(range(len(xMinorLabels)), minor=True) 
ax.set_xticklabels(xMinorLabels, minor=True, rotation=90, fontsize=fontsize-5) 
ax.set_xticks(xMajorPosition, minor=False) 
ax.set_xticklabels(xMajorLabels, minor=False, rotation=90, fontsize=fontsize-4)

plt.show()

如果我使用工具缩放到矩形并且 Y 轴不起作用属性,因为放大前的同一个点小于 5,放大后它大于 5。

当我使用缩放工具时,y 轴发生了什么变化?matplotlib 库的交互式导航中是否存在错误?如果没有这个工具,这个库对于巨大的图表是没有用的。

提前致谢!

4

1 回答 1

1

问题是这个

ax.set_yticklabels(ax.get_yticks(), fontsize=fontsize)

部分。 设置独立于数据set_yticklabels的刻度值。那就是第三个滴答永远是您传入的第三个条目。

set_*ticklabels应该被认为是危险的,并且只在非常特殊的情况下使用。

您可以通过ax.tick_params(...) doc设置字体大小,例如

于 2013-09-10T13:03:05.413 回答