【问题标题】:How do I convert (or scale) axis values and redefine the tick frequency in matplotlib?如何转换(或缩放)轴值并重新定义 matplotlib 中的滴答频率?
【发布时间】:2010-11-11 17:53:53
【问题描述】:

我正在显示 jpg 图像(如果相关,我将其旋转 90 度)当然 轴显示像素坐标。我想转换轴,而不是显示像素数,而是显示我选择的单位 - 无论是弧度、度数,还是在我的情况下是天文坐标。我知道从像素到(例如)度的转换。这是我的代码目前的样子:

import matplotlib.pyplot as plt 
import Image
import matplotlib
thumb = Image.open(self.image)
thumb = thumb.rotate(90)
dpi = plt.rcParams['figure.dpi']
figsize = thumb.size[0]/dpi, thumb.size[1]/dpi
fig = plt.figure(figsize=figsize)
plt.imshow(thumb, origin='lower',aspect='equal')
plt.show()

...因此,从这里开始,我可以获取 matplotlib 将在轴上打印的每个值,然后用字符串更改/替换它以输出吗?我想针对特定的坐标格式执行此操作 - 例如,而不是 10.44(度)的角度,我希望它读取 10 26' 24''(即度、弧分、弧秒)

最后,关于这个主题,我想在情节上控制滴答频率。 Matplotlib 可能每 50 个像素打印一次轴值,但我真的希望每(例如)度数。

听起来我想用我想要显示的像素值及其转换值(度数等)定义某种数组,控制 xmin/xmax 范围内的采样频率。

Stack Overflow 上有没有 matplotlib 专家?如果是这样,非常感谢您的帮助!为了使这成为一种更多的学习体验,我非常感谢在此类 matplotlib 问题的教程等方向上受到启发。我发现自己对轴、轴、图形、艺术家等感到非常困惑!

干杯,

戴夫

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    看起来您正在处理matplotlib.pyplot 界面,这意味着您将能够绕过与艺术家、轴等的大部分处理。您可以使用matplotlib.pyplot.xticks命令控制刻度线的值和标签,如下:

    tick_locs = [list of locations where you want your tick marks placed]
    tick_lbls = [list of corresponding labels for each of the tick marks]
    plt.xticks(tick_locs, tick_lbls)
    

    对于您的特定示例,您必须计算相对于原始绘图的单位(即像素)的刻度线(因为您使用的是imshow)-您说您知道该怎么做,不过。

    我没有过多地处理图像,但您可以使用不同的绘图方法(例如pcolor),它允许您提供xy 信息。这可能会为您提供更多选项来指定图像的单位。

    对于教程,您最好查看matplotlib gallery - 找到您喜欢的内容,然后阅读生成它的代码。我们办公室的一个人最近在Python visualization 上买了一本书——可能值得一看。

    我对所有不同部分的一般想法如下:

    • Figure 是所有Axes 的容器
    • Axes 是您绘制的内容(即您的情节)实际显示的空间
    • Axis 是实际的 xy
    • 艺术家?这对我来说太深奥了:我从来不用担心这些,尽管我很少在生产地块中使用pyplot 模块。

    【讨论】:

    • 谢谢 - 这非常有效。不过还有一点评论。当我使用 plt.xticks 时,当显示绘图时,我不再获得鼠标的 x,y 位置(我希望这在任何方面都是像素)。知道为什么会这样吗?
    • 奇怪 - 我以前从未注意到这一点。我对该 GUI 窗口的了解不够多,无法提出建议 - 在这里或 matplotlib 邮件列表中可能是一个好问题。
    • 在使用 imshow 时,一个更好的坐标转换方案是使用extent 关键字。
    猜你喜欢
    • 2021-08-04
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 2015-09-02
    相关资源
    最近更新 更多