Hi Aiste,
Thank you. It may be slow, but it is exactly what I was looking for! I'd
be interested if anyone has a faster solution, but this already does the
trick well.
Of course there will be additional elements in the figure, but it is the
coloring I was struggling with.
thanks, Roger
Aiste Aistike schreef:
Hello,
I slightly altered your code, but I hope that's what you want:
l <- 1000
radius <- 3
x <- seq(-radius,radius,length=l)
y <- sqrt(radius^2-x^2)
xx <- c(x,-x)
yy <- c(y,-y)
plot(xx,yy, xlim=c(-radius,radius),ylim=c(-radius,radius), type="l",
ylab="", xlab="", axes=F)
radius <- 2.7
x1 <- seq(-radius,radius,length=l)
y1 <- sqrt(radius^2-x1^2)
radius <- 2.0
x2 <- seq(radius,-radius,length=l)
y2 <- sqrt(radius^2-x2^2)
for (i in 1:l){
polygon(c(x1[i],x1[i+1],x2[l-i],x2[(l+1)-i]),c(y1[i],y1[i+1],y2[l-i],y2[(l+1)-i]),
col = rainbow(1, start = 0+(0.33*i)/l, end = 2/6),
border=rainbow(1, start = 0+(0.33*i)/l))
}
#you can omit this line if you do not need the border:
polygon(c(x1,x2),c(y1,y2))
It's not ideal I think because for length l = 2000 it's quite slow.
Maybe someone will find a much better solution.
Aiste
2008/8/15 Roger Leenders <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
R2.7.1, WinXP
Hi,
I have a polygon inside a circle as follows:
radius <- 3
x <- seq(-radius,radius,length=2000)
y <- sqrt(radius^2-x^2)
xx <- c(x,-x)
yy <- c(y,-y)
plot(xx,yy, xlim=c(-radius,radius),ylim=c(-radius,radius),
type="l", ylab="", xlab="", axes=F)
radius <- 2.7
x1 <- seq(-radius,radius,length=2000)
y1 <- sqrt(radius^2-x1^2)
radius <- 2.0
x2 <- seq(radius,-radius,length=2000)
y2 <- sqrt(radius^2-x2^2)
polygon(c(x1,x2),c(y1,y2))
(the graph much resembles a speed dial inside a car).
Now I want to fill the polygon with color, such that it starts on
the left with red and ends on the right with green, following the
coloring of the rainbow.
Preferably, the coloring should be "continuous", such that colors
naturally fade into each other.
I can draw the polygon as above, but I don't know how to do the
coloring. It is easy to give the polygon only one color (e.g.
through polygon(c(x1,x2),c(y1,y2), col="red")), but I need a way
in which to color the polygon such that the color moves through
the color spectrum from red (left) to green (right).
Can anyone help me to achieve this?
Thanks, Roger
______________________________________________
R-help@r-project.org <mailto:R-help@r-project.org> mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
<http://www.r-project.org/posting-guide.html>
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.