Changing the histogram colour from within another function
1 回表示 (過去 30 日間)
古いコメントを表示
Hi,
I have a histogram function "myHistogram" that I want to be able to change the colour of the bars from another function.
function [ctrs,counts,mode]=myHistogram(handles,data,step,colour)
edges=[0:step:max(data(:))-1];
h=histogram(data,edges,'EdgeAlpha',0.3,'EdgeColor',colour);
setappdata(0,'histog',h)
I thought that saving the handles structure h using setappdata would allow it to be called in the other function by using getappdata.
function logXAxis(source,event,ax,handles)
val = source.Value
h=getappdata(0,'histog')
if val==1
set(gca,'XScale','log')
xlabel('Log(Intensity)')
h.FaceColor = [.850 0.3250 0.0980];
else
set(gca,'XScale','linear')
xlabel('Intensity')
h.FaceColor = [0 0.4470 0.7410];
end
However, nothing happens, no change in colour.
4 件のコメント
Adam
2017 年 2 月 22 日
編集済み: Adam
2017 年 2 月 22 日
You say 'nothing happens'. First thing to check is always whether or not the histogram is being retrieved or not as there are (at least) 2 obvious totally different possibilities for why "nothing happens".
Either you don't get the histogram (which I would have thought would yield a syntax error) or you do get the histogram, but your instructions to change the colour don't achieve what you want.
It is always best to make sure you can pin down as tightly as possible the source of a bug rather than bring in a whole load of surrounding stuff that may or may not have anything to do with the bug.
In a quick test changing the face colour like that should work. Does the xlabel change? Is that function even getting called?
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Histograms についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!