Why is a straight line being plotted at zero, in addition to my desired plot?
11 次查看(过去 30 天)
显示 更早的评论
I'm plotting distance (X) versus different in duration of a sound signal across two different conditions (Y).
When I plot just the raw differences, I can plot several comparisons, plus a dotted black line at Y=0 for a reference (neg vs. pos differences).
When I try to plot those differences as percents (basically, (Y2-Y1)/Y1), I get a solid color line at Y=0, in addition to the black dotted one. If I plot one line at a time I can see that this straight colored line comes up even when I'm just plotting one of them.
Please see attached figure for comparison/illustration.
Parts of the respective codes (they are largely identical):
Raw differences
%Taking differences from Baseline
OneD10DegDiff=OneD10Deg-OneDBaseline;
OneD20DegDiff=OneD20Deg-OneDBaseline;
OneD30DegDiff=OneD30Deg-OneDBaseline;
OneD40DegDiff=OneD40Deg-OneDBaseline;
TwoD10DegDiff=TwoD10Deg-TwoDBaseline;
TwoD20DegDiff=TwoD20Deg-TwoDBaseline;
TwoD30DegDiff=TwoD30Deg-TwoDBaseline;
TwoD40DegDiff=TwoD40Deg-TwoDBaseline;
%Plot
hold on
plot(Data1D(:,1),OneD10DegDiff,'-r','LineWidth',2);
plot(Data1D(:,1),OneD20DegDiff,'-m','LineWidth',2);
plot(Data1D(:,1),OneD30DegDiff,'-g','LineWidth',2);
plot(Data1D(:,1),OneD40DegDiff,'-b','LineWidth',2);
plot(Data2D(:,1),TwoD10DegDiff,'-.r','LineWidth',2);
plot(Data2D(:,1),TwoD20DegDiff,'-.m','LineWidth',2);
plot(Data2D(:,1),TwoD30DegDiff,'-.g','LineWidth',2);
plot(Data2D(:,1),TwoD40DegDiff,'-.b','LineWidth',2);
plot([0,180],[0,0],':k','LineWidth',2);
axis([0 180 -0.25 0.1])
title([Name ' Percent Difference from Baseline'])
xlabel('Target Distance')
ylabel('Percent Duration Difference from Baseline (in ms)')
For percent differences:
%Taking differences from Baseline
OneD10DegDiff=(OneD10Deg-OneDBaseline)/OneDBaseline;
OneD20DegDiff=(OneD20Deg-OneDBaseline)/OneDBaseline;
OneD30DegDiff=(OneD30Deg-OneDBaseline)/OneDBaseline;
OneD40DegDiff=(OneD40Deg-OneDBaseline)/OneDBaseline;
TwoD10DegDiff=(TwoD10Deg-TwoDBaseline)/TwoDBaseline;
TwoD20DegDiff=(TwoD20Deg-TwoDBaseline)/TwoDBaseline;
TwoD30DegDiff=(TwoD30Deg-TwoDBaseline)/TwoDBaseline;
TwoD40DegDiff=(TwoD40Deg-TwoDBaseline)/TwoDBaseline;
%Plot
hold on
plot(Data1D(:,1),OneD10DegDiff,'-r','LineWidth',2);
plot(Data1D(:,1),OneD20DegDiff,'-m','LineWidth',2);
plot(Data1D(:,1),OneD30DegDiff,'-g','LineWidth',2);
plot(Data1D(:,1),OneD40DegDiff,'-b','LineWidth',2);
plot(Data2D(:,1),TwoD10DegDiff,'-.r','LineWidth',2);
plot(Data2D(:,1),TwoD20DegDiff,'-.m','LineWidth',2);
plot(Data2D(:,1),TwoD30DegDiff,'-.g','LineWidth',2);
plot(Data2D(:,1),TwoD40DegDiff,'-.b','LineWidth',2);
plot([0,180],[0,0],':k','LineWidth',2);
axis([0 180 -0.25 0.1])
title([Name ' Percent Difference from Baseline'])
xlabel('Target Distance')
ylabel('Percent Duration Difference from Baseline (in ms)')
1 个评论
Varun Lal
2018-6-20
Please help me out with this too.
t=data(:,1);
Ax=data(:,2);
Ay=data(:,3);
Az=data(:,4);
r=(Ax.^2 + Ay.^2 + Az.^2).^(1./2);
plot(t,Ax)
this is a plot of accleration vs time.
采纳的回答
Star Strider
2014-8-19
I don’t have your data and you didn’t describe it (I assume all are vectors), so see if doing the element-wise division makes a difference:
OneD10DegDiff=(OneD10Deg-OneDBaseline)./OneDBaseline;
Note the (./) in place of (/).
更多回答(1 个)
Andrew Reibold
2014-8-19
编辑:Andrew Reibold
2014-8-19
You have the following line
plot([0,180],[0,0],':k','LineWidth',2);
This plots a line from 0 to 180, with values from 0 to 0. So it will leave a straight line at zero. If you didn't write that, it may just be a baseline for people to see where zero is :-)
If you remove it, does it still show up?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!