refline - logaritmic/linear scale
显示 更早的评论
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 个评论
Geoff Hayes
2018-7-23
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
2018-7-24
编辑:Geoff Hayes
2018-7-24
Geoff Hayes
2018-7-24
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
2018-7-26
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
2018-7-26
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
2018-8-8
susana
2018-8-8
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Interactive Control and Callbacks 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!