フィルターのクリア

How do I plot logarithmic error?

18 ビュー (過去 30 日間)
Niek Blikslager
Niek Blikslager 2020 年 8 月 17 日
コメント済み: J. Alex Lee 2020 年 8 月 19 日
I have data that I want to plot on a log y-scale because it's not linear. When I plot the error, the bars are not of equal length (lower error looks larger) because of the log y-scale. How do I transform the error so it becomes the relative error and I get error bars of equal lengths above and below the datapoints?
I want to plot the error as a shaded area around the main data, so I need not plot a line above and below the main data. How do I calculate these two lines?
I don't calculate the logarithm of my data, I just plot it, and then change the y-axis through:
set(gca,'YScale','log');
Edit:
For clarity a figure of the problem. The dotted lines is the 'data + error', and the 'data - error'. Because of the log scale, the error seems way lager for the 'data - error', eventhough the error margin is equal above and below the data line. How do I transform the error so it has an equal distance between the error above and below the data line? I Hope this is more clear now.
data = [1.0 1.4 1.5 2.6 1.9 1.9 3.6 4.3 9.5 9.2];
error = [1.2 1.1 1.4 2.0 1.5 1.2 2.2 2.6 0.6 0.7];
dataPlus = data + error;
dataMin = data - error;

採用された回答

J. Alex Lee
J. Alex Lee 2020 年 8 月 18 日
In log space, spacing is multiplicative, not additive, so you want to express your top and bottom curves as multiples of your base curve
clc;
close all;
clear;
data = [1.0 1.4 1.5 2.6 1.9 1.9 3.6 4.3 9.5 9.2];
err = [1.2 1.1 1.4 2.0 1.5 1.2 2.2 2.6 0.6 0.7];
% above
dataPlus = data + err;
dataPlusMult = dataPlus./data;
% below
dataMinus = data ./ dataPlusMult;
figure(1); cla; hold on;
plot(data,'-')
plot(dataPlus,'--')
plot(dataMinus,'--')
set(gca,'YScale','log')
  2 件のコメント
Niek Blikslager
Niek Blikslager 2020 年 8 月 19 日
This is exactly what I wanted, thanks a lot for the help!
J. Alex Lee
J. Alex Lee 2020 年 8 月 19 日
Glad it helps.
Just to comment that your plot no longer reflects what you actually wanted to convey, if what you wanted to convey is data +/- err.

サインインしてコメントする。

その他の回答 (1 件)

J. Alex Lee
J. Alex Lee 2020 年 8 月 17 日
use the log10() function? The question isn't super clear...
  2 件のコメント
Niek Blikslager
Niek Blikslager 2020 年 8 月 18 日
I added some information, I hope the question is more clear now.
J. Alex Lee
J. Alex Lee 2020 年 8 月 18 日
the plot of the data is what it is, you can't change how it looks without changing the error values themselves...

サインインしてコメントする。

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by