python - matplotlib.pyplot 如何确定 x 和 y 轴标签和比例图?
问题描述
我无法理解 matplotlib.pyplot 如何确定放置在 x 和 y 轴上的 x 和 y 标签(默认),以及如何更改这些标签的间隔并相应地缩放绘图。最后一点很重要,因为我遇到了一些非常奇怪的行为。特别是,默认图表如下:
可以肯定的是,这张图正确地绘制了数据。但是,我不希望 y 轴既没有那么多标签,也没有那么精确。所以我在我的程序中添加了以下代码:
ax.set_ylim(bottom=y_min, top=y_max)
y_tick_marks = list(np.arange(y_min, y_max, (y_max - y_min)/10))
y_labels = [round(elem, 4) for elem in y_tick_marks]
plt.yticks(y_tick_marks, y_labels)
这看起来很荒谬,因为我应该能够看到这两个图表中的一些(我意识到最大的 y 值与上一个图表不同)。所以我然后删除了前面的代码块并包含以下内容(注意它们是相同的,只是省略了一行):
y_tick_marks = list(np.arange(y_min, y_max, (y_max - y_min)/10))
y_labels = [round(elem, 4) for elem in y_tick_marks]
plt.yticks(y_tick_marks, y_labels)
我这样做是因为考虑到上面的图 1 和图 2 之间的差异,我怀疑该图的缩放发生了一些事情。我认为我是正确的,因为我收到了以下图表:
这很奇怪,因为第一张图暗示第二张图的 y 值会拟合,但在第三张图中,我们看到第二张图只是很小的一部分。所以我运行了一个打印语句:
print(ax.get_ylim())
这给出了以下输出:
(-1.1500000000000001, 24.15)
世界上到底发生了什么?似乎 matplotlib 承认以某种方式缩放 y 值,但确保通过 y 轴标签将这些缩放的 y 值与其原始值相关联。
我意识到我没有包含太多代码,但是如果没有必要回答问题,我不想强迫任何人阅读一堆代码——可以肯定的是,我已经打印了所有 y 值并三重检查了我的输入到绘图方法中。如果需要,我可以添加更多代码,但图表不言自明。
一个通用的解决方案会很好,但如果可以提供这种行为的较低级别的解释,我也会非常感激。感谢任何试图回答这个问题的人。
解决方案
推荐阅读
- python - Seaborn - x 轴类别的中心箱
- ios - 在 Xcode 中归档 React Native App 时构建失败
- python - 如何在单个 Python 应用程序中支持多个 SIMD 指令?
- google-cloud-run - 使用 Pytorch 将烧瓶应用程序部署到 Cloud Run
- .htaccess - .htaccess 数字(数字)的高级重写规则
- python - 强制字段为对象类型
- flutter - 如何在flutter中订购从firestore中检索到的数据?
- javascript - 为什么我的 wordpress ajax 没有在前端 javascript 文件中调用?
- php - Web 和 CLI mysql 不会同时连接
- python - 是否可以在不使用 Python 执行任何代码的情况下获得代码覆盖率?