Tårtdiagram
Hej, jag behöver rita denna figuren utan att använde Pie,
men jag vet inte hur ska jag komma igång för Att använda
plott och fyll, behöver vi först rita en cirkel, och sen fylla på den.
Du får dela upp cirkeln i tre delar med olika vinkelvärden. Använd polär form.
Sedan kan du lägga till mittpunkten för att använda fill. Kanske behöver den läggas till både i början och i slutet av vektorn.
figure(1);
t=linspace(0,2*pi);
for i = 0:2*pi
x=cos(t); y=i*sin(t);
plot(x,y)
end
hej, igen, jag har skrevet denna koden men fick bara en cirkel, sedan vet jag inte exakt vinkelvärden och jag ska sätte in dem i koden, ich hur ska jag lägga till mittpunkten
tack på förhand
suad skrev:figure(1); t=linspace(0,2*pi); for i = 0:2*pi x=cos(t); y=i*sin(t); plot(x,y) end
y = sin(t), utan i, eller?
Om vi börjar på vinkeln t = 0 så ska den första tårtbiten gå från t = 0 till t = 2*pi*resultat(1)/sum(resultat)
hej, igen, så detta betyder att vi inte behover raden for i = 0:2*pi, och vad menas med resultat(1)
Jag tänkte att du skulle göra tre tårtbitar.
resultat = [50, 35, 15]
enligt din bild.
Vinkeln i radianer som varje tårtbit ska uppta är då
resultat(j)/sum(resultat)*2*pi
där j = 1, 2 eller 3.
En tårtbit kan börja på vinkel 0. De andra får börja där den tidigare slutade.
hej, jag har provat med denna koden, men det är fel
figure(1);
resultat=[50,35,15];
t= linspace(0,2*pi,3)
x=cos(t); y=sin(t);
for j=1:3
resultat=resultat(j)/sum(resultat)*2*pi;
plot(x,y)
end
Följande kodsnutt plottar en tårtbit och fyller den.
v=(-.5:.01:1.7)';
x = cos(v);
y = sin(v);
plot([0; x; 0],[0; y; 0],'k-'), hold on
fill([0; x; 0],[0; y; 0],'r')
De tillagda nollorna framför och bakom x och y är origo.
Du behöver ha olika värden på v för dina tre tårtbitar.
hej, nu har jag plotet den första tårtbiten, men hur ska jag formulera värden av v1 och v2 för att få de två andra tårtbiterna.
till exempel kan den röde området få v1=(0:pi/6)
eftersom jag vet inte hur ska jag bestämma värden av v.
Inte pi/6 väl?
15 % av 2π är 0.3π.
Nästa tårtbit ska då börja på 0.3π och uppta en vinkel på π.
Försök att formulera vinklarna med hjälp av vektorn som heter resultat.
låt oss säga att vi börjar på det råda området
v1=(0:pi/3)
v2=(pi/3 : 1.3*pi) 1.3*pi är nästan 240 degrees men jag vet inte hur många radianer svarar det exakt.
v3= (1.3*pi : 0)
stämmer dessa värden eller inte, och behöver jag ange hur många steg indelningen ska vara på eller inte,
till exempel v1 = (0:1:pi/3)
Startvinkeln för första fältet kan vara t.ex 0 och det slutar på
resultat(1)/sum(resultat)*2*pi.
(Nu ritar jag inte som i figuren, utan det kommer att vara vridet. Rita i ordning G, VG, U. Du kan lägga till en konstant vinkel till allt om du vill vrida saker och ting, testa!)
Andra fältet börjar då på vinkel
resultat(1)/sum(resultat)*2*pi
och slutar på
(resultat(1) + resultat(2))/sum(resultat)*2*pi
Tredje fältet ...
Du vill nog göra en vinkelvektor med konstant vinkelsted, t.ex
v = (vstart:dv:vslut)';
där dv har något lämpligt värde (så att det inte ser hackigt ut).