refline - logaritmic/linear scale
Show older comments
Hi, I'm building a GUI that usually has tracks that have a linear scale, but I give the option for the user to change to log scale if he wants. My problem is that it is possible to add horizontal lines too, but when I switch to XScale=='log', I loose these lines.. I'm using refline function for this purpose:
hline(j,i)=refline(ax(i),[0,Depth(j)]);
Can anyone help? Best regards
7 Comments
Geoff Hayes
on 23 Jul 2018
susana - how are you switching the scale to log? Are you re-plotting the data? It could be that you are missing a call to hold on to retain the current plots/lines. Please show some of your code.
susana
on 24 Jul 2018
Edited: Geoff Hayes
on 24 Jul 2018
Geoff Hayes
on 24 Jul 2018
susana - so once the horizontal line has been drawn, what is your next set of code that redraws to a log scale? Are you using a hold on to retain current plots on your axes?
Geoff Hayes
on 26 Jul 2018
susana's answer moved here
Hi Geoff, this is all done using uicontextmenu.. so when user right clicks the axes, he can select the option to add vertical/horizontal lines.. he can then right click again to change scale.. I am never using hold on..How would that fit here?
The code is the following for both actions:
%change scale
function setscalelog(~,~,ax)
scale=get(ax,'XScale');
if isequal(scale,'log')==1
set(ax,'XScale','linear');
else
set(ax,'XScale','log');
end
%add horizontal line
function sethline(hObject,~,ax)
handles=guidata(hObject);
cp = get(ax, 'CurrentPoint');
x=cp(1,1);
y=cp(1,2);
h = hline(y,'g');
linep2=uicontextmenu('Parent',ax.Parent);
ccmenu=uicontextmenu('Parent',ax.Parent);
set(h,'UIcontextmenu',linep2);
set(h,'Tag','qqcoisa');
txt_form=text(x,y,num2cell(round(y)),'tag','txt_form','Parent',ax,'UIContextmenu',ccmenu);
draggable(txt_form);
uimenu(linep2,'Label','Set color','Callback',@ccall);
(...) a bunch of uimenus
guidata(hObject,handles)
Thanks
Geoff Hayes
on 26 Jul 2018
susana - are the lines actually lost or are they still on the axes but in their original location which, given the change to the scale, creates the illusion that they are lost?
susana
on 8 Aug 2018
susana
on 8 Aug 2018
Answers (0)
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!