Changing the histogram colour from within another function
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Adam
am 22 Feb. 2017
Bearbeitet: Adam
am 22 Feb. 2017
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?
Antworten (0)
Siehe auch
Kategorien
Mehr zu Histograms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!