How to get handle of corrplot?

13 次查看(过去 30 天)
Hello
I'm using corrplot for creating a correlation plot of my data. This works fine but I have two problems with it:
1. How can I get a handle of the figure so that I can change the figure size (full screen) and changing the font sizes? h = corrplot(...) and also gca does not work.
2. The diagonal represents the histograms. Unfortunately, my data has a pretty large tail, that means there are some few data points far right on the x-axis. That's why this histograms on the diagonal shows mostly nothing. So I think I have to decrease the x-axis limit for the histograms. How can I do this in corrplot?

采纳的回答

Guillaume
Guillaume 2016-3-7
Since corrplot does not return any figure handle you'll have to acquire it with gcf. Make sure that the correct figure is selected first.
hfig = gcf;
haxes = findobj(hfig, 'Type', 'Axes');
arrayfun(@(ax) xlim(ax, [your limits]), haxes); %to change all the axes limit
  3 个评论
Sepp
Sepp 2016-3-8
编辑:Sepp 2016-3-8
I have managed to get it work:
hfig = gcf;
haxes = findobj(hfig, 'Type', 'Axes');
arrayfun(@(ax) xlim(ax, [your limits]), haxes); %to change all the axes limit
set(hfig ,'Name', 'Correlation Matrix', 'NumberTitle', 'off', 'units', 'normalized', 'outerposition', [0 0 1920 1080]);
set(hfig , 'Units', 'centimeters');
set(haxes , 'FontSize', 22, 'fontname', 'times');
There are only three last problems.
How can I also increase the size of the correlation numbers? I mean the number in each box.
How can I set different x-axis limits for each block (each column)?
How can I set different font sizes for the labels of the axis and the numbers (ticks) of the axis?
Adam Danz
Adam Danz 2019-2-8
A better way to get the axis handles in corrplot() is by using the 3rd output which is a matrix of plot object handles.
[~, ~, h] = corrplot(data);
haxes = [h.Parent];

请先登录,再进行评论。

更多回答(1 个)

Mustafa Khalid
Mustafa Khalid 2018-8-7
Hi Sepp,
To modify the size of the correlation numbers, do the following:
hfig = gcf;
textboxparent=findall(hfig,'Tag','scribeOverlay');
textboxchildren = get(textboxparent,'Children');
for hh=1:size(textboxchildren,1)
textboxchildren(hh).FontSize=16;
end

类别

Help CenterFile Exchange 中查找有关 Graphics Object Properties 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by