refline - logaritmic/linear scale
Afficher commentaires plus anciens
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 commentaires
Geoff Hayes
le 23 Juil 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
le 24 Juil 2018
Modifié(e) : Geoff Hayes
le 24 Juil 2018
Geoff Hayes
le 24 Juil 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
le 26 Juil 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
le 26 Juil 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
le 8 Août 2018
susana
le 8 Août 2018
Réponses (0)
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!