legend for circle matlab
25 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
How can i add the legend for "red circle" in the image? The circle was generated using the below syntax: (I already tried this syntax , but failed)
%%INPUT DATA
clear;clc;
R = 10; x_c = 5; y_c = 8;thetas = 0:pi/64:pi;
xs = x_c + R*cos(thetas); ys = y_c + R*sin(thetas);%create input data
% Now add some random noise to make the problem a bit more challenging:
mult = 0.5;
xs = xs+mult*randn(size(xs));
ys = ys+mult*randn(size(ys));
xfit=4.9641;yfit=8.1215;Rfit=9.8862;
%%PLOT RESULT
figure; plot(xs,ys,'b.');%plot data
rectangle('position',[xfit-Rfit,yfit-Rfit,Rfit*2,Rfit*2],'curvature',[1,1],'linestyle','-','edgecolor','r');
hold on;title(sprintf('Best fit: Radius = %0.1f; Center = (%0.3f,%0.3f)',Rfit,xfit,yfit));%create title
plot(xfit,yfit,'g.');xlim([xfit-Rfit-2,xfit+Rfit+2]);ylim([yfit-Rfit-2,yfit+Rfit+2]);axis equal;
legend('input data','center circle','fitted circle');
Hope the result as below:
THANKS,
0 commentaires
Réponse acceptée
madhan ravi
le 21 Oct 2018
Modifié(e) : madhan ravi
le 21 Oct 2018
R = 10; x_c = 5; y_c = 8;thetas = 0:pi/64:pi;
xs = x_c + R*cos(thetas); ys = y_c + R*sin(thetas);%create input data
% Now add some random noise to make the problem a bit more challenging:
mult = 0.5;
xs = xs+mult*randn(size(xs));
ys = ys+mult*randn(size(ys));
xfit=4.9641;yfit=8.1215;Rfit=9.8862;
figure(1);
h1=plot(xs,ys,'b.');%plot data
hold on;title(sprintf('Best fit: Radius = %0.1f; Center = (%0.3f,%0.3f)',Rfit,xfit,yfit));%create title
h2=plot(xfit,yfit,'g.');xlim([xfit-Rfit-2,xfit+Rfit+2]);ylim([yfit-Rfit-2,yfit+Rfit+2]);axis equal;
h3=rectangle('position',[xfit-Rfit,yfit-Rfit,Rfit*2,Rfit*2],'curvature',[1,1],'linestyle','-','edgecolor','r');
syms x y %symbolic toolbox
h=fimplicit((x-xfit).^2+(y-yfit).^2-Rfit.^2)
h.Color='r'
axis equal
legend([h1 h2 h],{'input data','center circle','fitted circle'})
5 commentaires
Plus de réponses (1)
Image Analyst
le 21 Oct 2018
Sorry, but you're not doing a fit of your data to a circle at all.
You're just drawing a circle of a predefined size.
To actually do a fit, see the FAQ: https://matlab.wikia.com/wiki/FAQ#How_can_I_fit_a_circle_to_a_set_of_XY_data.3F
Voir également
Catégories
En savoir plus sur Surface and Mesh Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!