【问题标题】:Octave plot breaks when setting axis scale to log将轴比例设置为对数时,八度图中断
【发布时间】:2017-08-18 15:42:10
【问题描述】:

我正在尝试使用以下脚本绘制直方图:

for i = 1:100
    edges(i) = i * 10;
end

[n] = histc(x, edges);
bar(edges, n, 'histc');

当我尝试使用

将轴设置为对数刻度时
set(gca, 'xscale', 'log')

我收到以下消息

warning: opengl_renderer: data values greater than float capacity.  (1) Scale data, or (2) Use gnuplot

直方图的数据(x 向量)是此 csv 文件的列 mq135https://github.com/pedroscaff/sensor-platform-data-analysis/blob/master/data/prenzl-tempelh.csv

我找不到更改轴刻度以记录的方法,关于可能导致此问题的任何想法?该消息对值非常清楚,但对我来说没有任何意义,并且使用开箱即用的 plot.ly 绘制直方图。

谢谢!

【问题讨论】:

  • 您正在设置x 刻度以登录条形图?这似乎很奇怪。条形将被挤入。也许条形边缘太小以至于渲染器抱怨。你确定不希望yscale 成为日志吗?
  • 顺便说一句,以这种方式创建edges 非常....不常见。使用edges = 10:10:1000
  • 感谢您的快速回复!我确实想将两个轴都设置为日志,两个轴都有很大的值范围! @Andy 我好久没用八度了,我只需要一些像这样的简单脚本,我做的一切都非常直观,呵呵,谢谢你的提示!

标签: plot histogram octave axis scaletransform


【解决方案1】:

您确定要将 xscale 作为 log 而不是 yscale?这使用 hist 但 yscale 设置为 log

base_url = "https://github.com/pedroscaff/sensor-platform-data-analysis/raw/master/data"
fn = "prenzl-tempelh.csv";
if (! exist (fn, "file"))
  urlwrite (fullfile (base_url, fn), fn);
endif

# skipp headerline, extract only mq135
mq135 = csvread (fn, 1, 0)(:, 2);
hist (mq135, 0:20:1000);
xlabel ("MQ-135 gas sensor raw data?")
set(gca, 'yscale', 'log')
set(gca, "xtick", 0:100:1000)
grid on
print ("out.png");

给予

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2018-07-19
    • 2018-05-06
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 2016-07-05
    相关资源
    最近更新 更多