# Change how this plot looks

1 view (last 30 days)
Philip on 8 Dec 2011
Is there a way to modify the attached plot in MATLAB, such that it contains another y-axis on the right hand side called "ADR" (where the range is 0-100)?
I would also like to change the x-axis scale to decrease from 0.9 to 0.2 instead of running from 1 to 8... I think I should be using xlim for this, but I don't know the syntax for xlim([max min]) such that the values decrease...
Finally, I would like to add a vertical line at the point where the two curves intersect. Is this possible?
This is the code I'm using:
figure,
hold on
plot(HR_accuracy,'k-x','Color',[0 0 0],'linewidth',1.05)
grid on
ylabel('HR Accuracy (%)')
xlabel('Threshold Values, t^{L} = 0.1')
l = legend('HR Accuracy (%)', 'ADR (%)',2);
set(l,'position',[0.76 0.65 0.1 0.1]);
hold off

Sean de Wolski on 8 Dec 2011
Sure:
1. doc plotyy
2. use the axes handles set the limits (doc axes (click on axes properties))
3. To plot a vertical line, find where the curves intersect (doc interp1 and doc fzero, if you don't know the intersection point). Then just user line (doc line) do draw it.
For Q2:
h = figure;
[ax] = plotyy(1:10,1:10,1:10,1:10.^1:10); %ax is 1x2 vectpr of axes handles
set(ax(1),'xlim',[0 4]); %set the xlims
set(ax(2),'xlim',[8 10]);
Sean de Wolski on 8 Dec 2011
doc text, doc annotation, or just do it manually with the plottools (doc plottools)