MATLAB Answers

0

How to avoid overlapping of text labels in plot?

Asked by Sheila Dangol on 20 Sep 2019 at 21:15
Latest activity Commented on by Sheila Dangol on 27 Sep 2019 at 8:54
The data in the graph(shown below) have same value and the labelling is unclear here due to overlapping. Is there any way to avoid overlapping of the labels?
Thank you!
Matlab.PNG

  3 Comments

annotation('textarrow')
Hey! Thanks for the reply. But how can I label these data using annotation? I tried using the following syntax but it doesn't work. Could you please help me on this?
labels={'Qinf','TSin','RS','SVISC3','TSminSC3','saSC3','sbSC3','n2SC3','V0SC3','ASC3S','hSC3S'};
annotation('textarrow',x,y, labels);
You would use a different annotation('textarrow') call for each point.

Sign in to comment.

1 Answer

Answer by Harsha Priya Daggubati on 23 Sep 2019 at 8:30

Hi,
As Walter Roberson mentioned, you need to create annotation for every point that needs to be plotted, in your case for 11 (x,y) points.

  1 Comment

This is my code. My text function is inside the loop. How could I customize the 'annotation' function for this code. Any suggestion, please?
filename='Sensitivity_indices.xlsx';
X = readmatrix(filename,'Sheet','M3');
labels={'Qinf','TSin','R','SVI','TSmin','sa','sb','n2','V0','A','h'};
T={'TSS conc.','Sludge conc.','TSS load','Sludge load'};
k=1;
figure('Name','Model 3: SiVsPed')
for i=[2 4 6 8] %No. of columns selected
if k>4
end
subplot(2,2,k)
scatter(X(:,10),X(:,i),'filled');
xlim([0 1]);
set ( gca, 'xdir', 'reverse' )
text(X(:,10),X(:,i),labels,'VerticalAlignment','top','HorizontalAlignment','right');
ylim([0 1]);
title(sprintf('Model 2: %s', T{k}));
xlabel('Strength');
ylabel('Sensitivity(Si)');
k=k+1;
end

Sign in to comment.