gca when using subplots
古いコメントを表示
Hi.
I have created a barchart on a figure and wanting to change the number of bins by adding a popupmenu to the figure. I assign the callback to this a function called setBins.
% Create pop-up menu on figure
popup = uicontrol('Style', 'popup',...
'String', {'5','10','20','50','100','200','500','1000','2000'},...
'Position', [10 0 80 30],...
'Callback', @setBins);
function setBins(source,event)
fig = gcf;
ax = fig.CurrentAxes;
cla(ax)
val = source.Value
indx = source.String
nbins=(indx(val,1))
nbins=str2double(nbins)
data=getappdata(0,'data'); %Data has already been saved using setappdata
[counts,xb]=hist(data(:,3),nbins); %IMHIST ONLY HANDLES 8 & 16 BIT IMAGES, NOT 12BIT
bar(log10(xb),counts,'b','EdgeColor','b'); %Replot with user defined number of bins
grid on;
hold on
xlim([min(log10(xb)) max(log10(xb))])
xlabel('log(Intensity)')
ylabel('Frequency')
set(gca,'fontsize',8)
hold off
My question is, this works fine with one plot on the figure. If however, this figure has two subplots and this is subplot(1,2,1), how would I get the above code just to apply to this subplot?
Thanks Jason
採用された回答
その他の回答 (1 件)
Steven Lord
2017 年 2 月 16 日
Consider using the histogram function instead of hist. Once you've created a histogram plot, click the arrow icon on the figure toolbar then right-click on the histogram. Assuming you're using a numeric histogram rather than a categorical histogram, you will be able to select the "More bins" and "Fewer bins" options from the context menu that appears.
x = randn(10000, 1);
h = histogram(x);
plotedit on
% Now right-click on the histogram
You can also directly change the bin related properties of the histogram using the handle h if you want finer control over the number and location of the bins.
% Change the histogram to have only a few bins with narrower center bins
h.BinEdges = [-4 -2 -1 -0.5 0 0.5 1 2 4]
% Set the number of bins and let histogram choose their locations
h.NumBins = 11
カテゴリ
ヘルプ センター および File Exchange で Subplots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!