hold data from a regular plot to a semilog plot

32 次查看(过去 30 天)
I hope this one is easy: Imagine I already have figure 100 in a plot containing data, and I want to add more curves while making the plot in a semilogy scale. let's say the data I have can be produced by: figure(100) plot([0,1,2],[900,1200,1000]) (and we can't change that)
I am now using hold on semilogy(0,1000) hold off but the plot remains normal (due to hold on I'm assuming)
in order to have my complete set of data as it would be traced by figure(100) semilogy([0,0,1,2],[1000,900,1200,1000])
I tried using reset, plotnow but I can't seem to access the axes handle's properties in order to make them semilog.
Thank you, N.

采纳的回答

Matt Fig
Matt Fig 2011-3-15
It is not clear to me whether you want to have two different curves, one in linear scale and the other in logarithmic scale or whether you want to change one existing plot to have the y-axis be log scale. If the latter, you can do:
set(gca,'yscale','log')
If the former, look at the PLOTYY function.

更多回答(1 个)

j dr
j dr 2011-3-16
Exactly the former.
I tried using gca, and then trying get on the value 170.0012 but get couldn't recognize the handle...
If I use get(gca) then it works... do you know why that is ? If I knew that I could have figured that out myself, but thanks a lot for being very insightful !
  2 个评论
Walter Roberson
Walter Roberson 2011-3-16
Handles are 64 bit floating point quantities, the full extent of which is not shown with any of the "format" choices except for "format hex".
Matt Fig
Matt Fig 2011-3-16
The handle is a double number. You only pasted the first 4 decimals, which is not enough, in fact you may not be able to copy and paste even if you set the format to long g. That is why we store handles in variable, like:
ax_handle = gca;

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Two y-axis 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by