gpt4 book ai didi

python - Pyplot - 在限制 x 轴后重新缩放 y 轴

转载 作者:太空狗 更新时间:2023-10-30 01:38:47 26 4
gpt4 key购买 nike

我正在尝试使用 pyplot 绘制一些数据,然后使用 xlim() 来“放大”x 轴。但是,当我这样做时,新绘图不会重新缩放 y 轴 - 我做错了什么吗?

示例 - 在此代码中,绘图 y 轴范围仍然取最大值 20,而不是 10。:

from pylab import *

x = range(20)
y = range(20)

xlim(0,10)
autoscale(enable=True, axis='y', tight=None)
scatter(x,y)
show()
close()

最佳答案

意识到这是一个古老的问题,但这就是我(困惑地)解决这个问题的方式:

  1. 使用 .plot() 代替 .scatter()
  2. 稍后使用 ax.get_lines()[0].get_xydata()
  3. 访问绘图数据(即使在某处返回图形之后)
  4. 使用该数据将 y 轴重新调整为 xlims

片段应该工作:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

x = range(20)
y = range(20)

xlims = [0, 10]

ax.set_xlim(xlims)
ax.plot(x, y, marker='.', ls='')

# pull plot data
data = ax.get_lines()[0].get_xydata()

# cut out data in xlims window
data = data[np.logical_and(data[:, 0] >= xlims[0], data[:, 0] <= xlims[1])]

# rescale y
ax.set_ylim(np.min(data[:, 1]), np.max(data[:, 1]))

plt.show()

关于python - Pyplot - 在限制 x 轴后重新缩放 y 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7802085/

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