Start plot errorbar() at 0 ?

2 visualizaciones (últimos 30 días)
Remi Chaussenot
Remi Chaussenot el 27 de Abr. de 2015
Editada: Remi Chaussenot el 28 de Abr. de 2015
Hello,
In my matlab script, i use errorbar() to plot my data, but i wish it could start from 0 (for the y-axis).
Do you have an idea ?
Thanks !
Here is my sample :
>> x
moyenne(2:2,1:end)
ste(1:1,1:end)
x =
1 2
ans =
64.7573 36.0701
ans =
4.0268 4.6105
>> errorbar(x,moyenne(2:2,1:end),ste(1:1,1:end));

Respuesta aceptada

Jos (10584)
Jos (10584) el 27 de Abr. de 2015
You can change limits of the axis using the commands YLIM
CurYLim = ylim % get the current Y limits
ylim([0 CurYlim(2)]) % change the lower limit

Más respuestas (1)

Remi Chaussenot
Remi Chaussenot el 27 de Abr. de 2015
Thanks for your quick answer.
In the mean time, i ended with :
oldy = get(gca, 'ylim')
if oldy(1) > '0'
oldy = [0 oldy(2)]
end
set(gca,'YLim',[0 oldy(2)])
Which one is better ?
Thanks :)
  2 comentarios
Michael Haderlein
Michael Haderlein el 27 de Abr. de 2015
First, please note that the '' in your if statement are making things wrong. You actually compare the lower limit with the string '0'. This means, the value of the ascii sign '0' will be used which is 48. So you set oldy(1) to zero only if it was at least 49 before. That's not what you wanted, I guess.
However, your code works because the if structure makes nothing at all. The reason is that you don't even use the value of oldy(1) in your set statement. So you can simply delete the entire if statement. What you then end up with is basically the same as Jos' answer. If you use ylim() or set(handle,'ylim',..) is up to you.
Remi Chaussenot
Remi Chaussenot el 28 de Abr. de 2015
Editada: Remi Chaussenot el 28 de Abr. de 2015
Hello,
I had some difficulties to understand your message yesterday, so i reply just today.
"You actually compare the lower limit with the string '0'. This means, the value of the ascii sign '0' will be used which is 48. So you set oldy(1) to zero only if it was at least 49 before. That's not what you wanted, I guess."
No, you guess well. I do not know that it use the ascii value with ' ' (well, started with MATLAB a few weeks ago, more used at PHP/JS...).
"The reason is that you don't even use the value of oldy(1) in your set statement. So you can simply delete the entire if statement."
Damned, i just read my code today. Yeah, the if statement is truly useless, because the set is outside ! Was very tired yesterday..
Thanks for opening my eyes Michael :)
Edited like that :
CurYLim = ylim
if CurYLim(1) > 0
ylim([0 CurYLim(2)])
end
Seems okay ? Thanks Michael and Jos :-)

Iniciar sesión para comentar.

Categorías

Más información sobre Errorbars en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by