【问题标题】:Octave colorbar and units八度颜色条和单位
【发布时间】:2010-12-01 08:09:43
【问题描述】:

GNU Octave 中,您可以制作一张图片,其中不同的颜色代表矩阵中的不同值。您还可以添加一个颜色条,显示什么颜色对应什么值。

是否可以以某种方式将单位添加到颜色栏中显示的值?不是说“0.36”而是说“0.36 V/nm”?我知道这在 Matlab 中是可能的,但我不知道如何在 Octave 中做到这一点。有什么好的解决方法吗?

我假设这里有人会提到我应该改用 matplotlib(这通常会发生)。你将如何用它来完成同样的事情?

【问题讨论】:

    标签: matplotlib octave


    【解决方案1】:

    matplotlib 答案(使用 pylab)是

    imshow(random((20,20)))
    colorbar(format='%.2f V/nm')
    

    在 Octave 中,以下方法似乎有效(但我不是 Octave 专家,所以也许有更好的方法):

    c=colorbar();
    labels = {};
    for v=get(c,'ytick'), labels{end+1} = sprintf('%.2f V/nm',v); end
    set(c,'yticklabel',labels);
    

    【讨论】:

    • 我没有让你的 Octave 代码工作(可能版本 3.0 太旧了),但由于 pylab 支持非常类似于 Octave 的代码,我可以轻松地移植我的代码来使用它。跨度>
    • 我的版本是 3.2.2,所以很可能是版本问题。 get(c,'yticklabel') 会在您的版本上返回任何内容吗?可以用 set(c,'yticklabel') 手工制作刻度标签吗?
    猜你喜欢
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2015-09-19
    • 1970-01-01
    • 2018-06-21
    相关资源
    最近更新 更多