refline - logaritmic/linear scale
Mostrar comentarios más antiguos
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 comentarios
Geoff Hayes
el 23 de Jul. de 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
el 24 de Jul. de 2018
Editada: Geoff Hayes
el 24 de Jul. de 2018
Geoff Hayes
el 24 de Jul. de 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
el 26 de Jul. de 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
el 26 de Jul. de 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
el 8 de Ag. de 2018
susana
el 8 de Ag. de 2018
Respuestas (0)
Categorías
Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!