【问题标题】:Logarithmic yscale in imshow [duplicate]imshow中的对数y标度[重复]
【发布时间】:2016-06-17 06:55:10
【问题描述】:

可能重复:
Plot logarithmic axes with matplotlib in python

我有一个 50*1050 的矩阵,其中 50 表示频率,1050 表示时间。我尝试使用 imshow 绘制它,我得到了这张图片:

但我想突出显示较低的频率,这意味着我需要对 y 刻度使用对数刻度。我搜索了很多,但我还没有找到任何有效的解决方案。

我需要的是矩阵的第一行应该占据图像的最大百分比,并且随着行的增加,如果它们在图像中占据的行的宽度应该减小。有什么建议吗?

【问题讨论】:

  • @djechlin 在 SO 中已经有了这个问题的答案。你只需要google matplotlib + log + scale
  • ax.set_yscale('log') 对我没有帮助。它只是使 y 比例对数。看看这个,当我使用你的命令时:ge.tt/5cAJX0S/v/0?c
  • 你给我的链接两个,没有回答我的问题。最近的问题是stackoverflow.com/questions/1679126/…
  • 我认为我们在这里遗漏了一些重要的东西 - 你有一个数据矩阵A[i,j],其中 i-index 是时间,j-index 是频率,但 A[i,j] 的单位是什么?或者您是否有 50 个不同的时间曲线图,并且您想突出它们 z 值的一些对数差异?
  • @joaquin 这被错误地标记为重复。OP 的问题不是指 xy 图,而是绘制一个函数 z=f(x,y),z 为对数轴。跨度>

标签: python matplotlib logarithm


【解决方案1】:

更新轴:

a = list(axis())
a[3] = 10
axis(a)
yscale('log')

【讨论】:

  • 我不知道为什么他们关闭了这个话题。谢谢你的回复,但这不是我的答案。它对我没有帮助,它只是改变了轴上的数字,最终图像的外观没有任何不同。
  • 这个答案是什么意思? axis() 不知从何而来?充其量是困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-12
  • 2018-05-22
  • 2015-09-12
  • 2020-03-27
  • 2012-11-15
  • 1970-01-01
相关资源
最近更新 更多