【问题标题】:Matplotlib: plot data to one set of axes while displaying another [duplicate]Matplotlib:将数据绘制到一组轴,同时显示另一组[重复]
【发布时间】:2015-04-22 10:20:48
【问题描述】:

使用matplotlib.pyplot,我想绘制相对于一组轴的数据,但我想让轴显示不同范围的值,而不影响显示的数据部分。

具体来说,我有一个 1000x1000 的数据网格,我用 pyplot.imshow() 绘制;但是,我只希望我的轴从 -2 运行到 2(x 和 y 轴),同时仍然显示整个 1000x1000 网格。如果可能的话,我想将这些值(-2 和 2)硬编码为我的轴的限制,而不是使用某种从 1000x1000 网格到新轴的重新缩放。

这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm

array = np.loadtxt("output.dat",unpack=True)
im = plt.imshow(array,cmap='hot')
plt.colorbar(im)

【问题讨论】:

  • 这个问题可能对你有用:stackoverflow.com/questions/3677368/…
  • @paintedcones 有帮助,但我想做的基本上是将轴硬编码为我设置的值,而不是像我在您发布的链接中的示例中看到的那样使用某种轴重新缩放器。
  • 你试过plt.ylim(-2,2)plt.xlim(-2,2)吗?
  • @N1B4 放大网格的那部分而不是缩放轴,同时仍显示整个网格。
  • 您是否只想将网格数据中的所有值缩放到 2 到 -2 之间?这只是将数据标准化为 (-1,1),然后将 1 添加到所有网格点。

标签: python matplotlib


【解决方案1】:

刚刚找到一个专门针对plt.imshow() 的答案。 extent 参数。更换

im = plt.imshow(array,cmap='hot')

在我的原始代码示例中使用

im = plt.imshow(array,cmap='hot',extent=(-2,2,-2,2))

会处理好事情。

【讨论】:

  • 如果可行,请接受答案!
  • @paintedcones 它确实有效。如果你看,提问者和回答者是同一个人。如果答案不起作用,我就不会发布我自己的问题的答案!
  • 是的,我知道.. 但如果这是正确答案,您应该按“接受答案”,以便未来的 SO 访问者知道。
  • @paintedcones,当您回答自己的问题时,您两天内无法接受答案。
猜你喜欢
  • 1970-01-01
  • 2019-05-10
  • 2022-01-18
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
  • 2022-07-05
  • 2017-09-13
  • 1970-01-01
相关资源
最近更新 更多