gpt4 book ai didi

python - matplotlib.pyplot - 仅修复一个轴限制,将其他设置为自动

转载 作者:太空狗 更新时间:2023-10-29 17:56:50 27 4
gpt4 key购买 nike

以下 MWE 生成一个简单的散点图:

import numpy as np
import matplotlib.pyplot as plt

# Generate some random two-dimensional data:
m1 = np.random.normal(size=100)
m2 = np.random.normal(scale=0.5, size=100)

# Plot data with 1.0 max limit in y.
plt.figure()
# Set x axis limit.
plt.xlim(0., 1.0)
# Plot points.
plt.scatter(m1, m2)
# Show.
plt.show()

在此图中,x 轴限制设置为 [0., 1.]。我需要将 upper y 轴限制设置为 1。将下限保留为 m2 中的最小值(即:让 python决定下限)。

在这种特殊情况下,我可以只使用 plt.ylim(min(m2), 1.0) 但我的实际代码要复杂得多,需要绘制很多东西,所以这样做并不是真正的选项。

我试过设置:

plt.ylim(top=1.)

还有:

plt.gca().set_ylim(top=1.)

按照此处的建议How to set 'auto' for upper limit, but keep a fixed lower limit with matplotlib.pyplot ,但这两个命令似乎都不起作用。他们都正确地将 y 轴的上限设置为 1。但他们也强制将下限设置为 0。这是我不想要的。

我正在使用 Python 2.7.3Matplotlib 1.2.1

最佳答案

如果只是担心要绘制大量数据,为什么不检索绘图的 y 下限并在设置限制时使用它?

plt.ylim(plt.ylim()[0], 1.0)

或类似地用于特定轴。有点难看,但我看不出它为什么不能工作。


问题实际上在于,在绘图之前设置限制会禁用自动缩放。默认情况下,x 轴和 y 轴的限制均为 (0.0, 1.0),这就是 y 轴下限保持为 0 的原因。

解决方案是在调用所有绘图命令后简单地设置绘图限制。或者你可以 re-enable autoscaling如果需要

关于python - matplotlib.pyplot - 仅修复一个轴限制,将其他设置为自动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18676022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com