【问题标题】:contourf not working when setting xscale in logarithm以对数设置 xscale 时,contourf 不起作用
【发布时间】:2014-06-06 01:50:08
【问题描述】:

我正在尝试使用 coutourf() 进行绘图,但 xscale 为对数:

contourf(data);
set(gca,'XScale','log');

但是当我设置 xscale 时,我失去了填充(变成了一种轮廓但没有颜色)。 我尝试使用 GUI 进行绘图,结果相同

更新: 我想我缩小了问题的范围。这是因为我使用了从 0 开始的 x 值。 Here is my exemple(下面是完全相同的数据,只是将xcale放入日志中)

您无法通过以下方式获取the same result

a = peaks(100);
x=0:99;
y=1:100;
[X,Y]=meshgrid(x,y);
contourf(X,Y,a);
set(gca,'XScale','log');

我认为这是由于我的数据中非常拖尾的分布以及与颜色条的线性分割。 任何想法让 x 从 0 开始?有对数刻度颜色条吗? (我尝试用 eps 替换它,但仍然不是很好)。 谢谢

PS:我不能在这里放另一个链接是我的数据:www.filedropper.com/dd_3

【问题讨论】:

  • 请告诉我们图片的样子。我认为您没有足够的声誉来发布图片,因此请将我们链接到外部网站,我将修改帖子以包含图片。此外,为了诊断您的问题,最好是可重现的。你能告诉我们数据是什么样的吗?
  • 好吧,您对 log(0)=-inf 有什么期望?您需要确定要截断的位置,或将 0.1 添加到 x。您也可以改为设置xlim([1 99])...
  • 颜色条应该根据我的矩阵中的值进行调整(在我的例子中是a)。即使我将 x 轴从 0.0001 设置为 100(而不是零),它也不应该改变颜色。

标签: matlab logarithm xscale contourf


【解决方案1】:

对我来说很好......

a = peaks(100);
contourf(a,20);
set(gca,'XScale','log');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    相关资源
    最近更新 更多