Matplotlib交互式导航缩放到矩形按钮不起作用

时间:2013-09-10 12:42:45

标签: python matplotlib

我有这个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库的交互式导航中的错误吗?没有这个工具,图书馆对于巨大的图表来说是无用的。

提前致谢!

1 个答案:

答案 0 :(得分:1)

问题是这个

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

部分。 set_yticklabels设置独立于数据的tick 的值。这是第三个刻度将始终成为您传入的第三个条目。

set_*ticklabels应被视为危险,仅用于非常特殊的情况。

您可以通过ax.tick_params(...) docexample

设置字体大小