12 svar
154 visningar
Moni1 721
Postad: 14 mar 2021 09:09

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. 

Dr. G 9479
Postad: 14 mar 2021 12:48

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. 

Moni1 721
Postad: 14 mar 2021 13:33
figure(1);
t=linspace(0,2*pi);
for i = 0:2*pi
    x=cos(t); y=i*sin(t);
    plot(x,y)
end
Moni1 721
Postad: 14 mar 2021 13:35

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

Dr. G 9479
Postad: 14 mar 2021 21:01
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)

Moni1 721
Postad: 14 mar 2021 21:10

hej, igen, så detta betyder att vi inte behover raden for i = 0:2*pi, och vad menas med resultat(1)

Dr. G 9479
Postad: 14 mar 2021 21:18

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. 

Moni1 721
Postad: 14 mar 2021 23:07

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
Dr. G 9479
Postad: 15 mar 2021 08:41

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. 

Moni1 721
Postad: 15 mar 2021 10:10

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.

Dr. G 9479
Postad: 15 mar 2021 10:26

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.

Moni1 721
Postad: 15 mar 2021 10:46

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) 

Dr. G 9479
Postad: 15 mar 2021 17:16

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).

Svara
Close