Diagramme circulaire et semi circumaire
Publié: 13 Fév 2011 11:47
Bonjour, je continue mes petites macros :
DiagCirc qui représente les valeurs en diagramme circulaire :
Le code :
donne
et DiagSemiCirc qui représente les valeurs en diagramme circulaire :
Le code :
donne
Si ça peut servir à d'autres que moi.
DiagCirc qui représente les valeurs en diagramme circulaire :
- Code: Tout sélectionner
{DiagCirc = DiagCirc(valeur, centre rayon)}
$r:=%3, $centre:=%2,
$L:=%1,
$S:=sum(L),
$ColorList:=[purple, blue, green, yellow, orange, red, crimson],
Langle:=[for $k in L do k*360/S od],
for $j from 1 to Nops(L)-1 do
for $k from j+1 to Nops(L) do
replace(Langle,k,Langle[k]+L[j]*360/S)
od,
od,
Insert(Langle,0,1),
FillStyle:=full,
for k from 1 to Nops(Langle)-1 do
ColorAngle:=mod(k,7),
FillColor:=ColorList[ColorAngle],
Path([centre+r*exp(i*pi*Langle[k]/180), centre, centre+r*exp(i*pi*Langle[k+1]/180), r, arc,
centre+r*exp(i*pi*Langle[k+1]/180), centre, centre+r*exp(i*pi*Langle[k]/180), line],1)
od,
Le code :
- Code: Tout sélectionner
[
Fenetre(-3+5*i, 5-3*i, 1+i),
Axes(0,1+i),
DiagCirc([2,1,11,5],2+2*i,2),
]
donne
et DiagSemiCirc qui représente les valeurs en diagramme circulaire :
- Code: Tout sélectionner
[
{DiagSemiCirc = DiagSemiCirc(valeurs, centre, rayon}
$r:=%3, $centre:=%2,
$L:=%1,
$S:=sum(L),
$ColorList:=[purple, blue, green, yellow, orange, red, crimson],
Langle:=[for $k in L do k*180/S od],
for $j from 1 to Nops(L)-1 do
for $k from j+1 to Nops(L) do
replace(Langle,k,Langle[k]+L[j]*180/S)
od,
od,
Insert(Langle,0,1),
FillStyle:=full,
for k from 1 to Nops(Langle)-1 do
ColorAngle:=mod(k,7),
FillColor:=ColorList[ColorAngle],
Path([centre+r*exp(i*pi*Langle[k]/180), centre, centre+r*exp(i*pi*Langle[k+1]/180), r, arc,
centre+r*exp(i*pi*Langle[k+1]/180), centre, centre+r*exp(i*pi*Langle[k]/180), line],0)
od
]
Le code :
- Code: Tout sélectionner
[
Fenetre(-3+5*i, 5-3*i, 1+i),
Axes(0,1+i),
DiagSemiCirc([2,1,11,5],2+2*i,2),
]
donne
Si ça peut servir à d'autres que moi.