miguel.angel.rodriguez.muinos en sergas.es
2012-Dec-14 11:10 UTC
[R-es] Feliz Navidad (R code)
f.x = c(0.193,0.703,0.703,0.295,0.295,0.703,0.703,0.295,0.295,0.193,0.193)
f.y = c(0.935,0.935,0.835,0.835,0.575,0.575,0.475,0.475,0.063,0.063,0.935)
e.x = c(0.222, 0.787, 0.787, 0.324, 0.324, 0.757, 0.757, 0.324, 0.324,0.804,
0.804, 0.222)
e.y = c(0.935, 0.935, 0.834, 0.834, 0.564, 0.564, 0.464, 0.464, 0.163,0.163,
0.063, 0.063)
l.x = c(0.222,0.324,0.324,0.804,0.804,0.222)
l.y = c(0.935,0.935,0.163,0.163,0.063,0.063)
a1.x = c(0.433, 0.546, 0.865, 0.746, 0.656, 0.328, 0.242, 0.136)
a1.y = c(0.935, 0.935, 0.063, 0.063, 0.326, 0.326, 0.063, 0.063)
a2.x = c(0.488, 0.629, 0.355)
a2.y = c(0.841, 0.418, 0.418)
n.x = c(0.189, 0.295, 0.707, 0.707, 0.804, 0.804, 0.701, 0.287, 0.287, 0.189)
n.y = c(0.935, 0.935, 0.248, 0.935, 0.935, 0.063, 0.063, 0.747, 0.063, 0.063)
d.x = c(0.218,0.56,0.56,0.56,0.56,0.32,0.218,0.32,0.32)
d.y = c(0.935,0.933,0.832,0.518,0.418,0.063,0.063,0.518,0.834)
d.cir.th = seq(pi/2, -pi/2, length.out = 50)
d1.cir.x = 0.32 + 0.515 * cos(d.cir.th)
d1.cir.y = 0.499 + 0.436 * sin(d.cir.th)
d2.cir.x = 0.32 + 0.4147 * cos(d.cir.th)
d2.cir.y = 0.499 + 0.3 * sin(d.cir.th)
d1.x = c(0.218, d1.cir.x, 0.32, 0.218)
d1.y = c(0.935, d1.cir.y, 0.063, 0.063)
d2.x = c(0.32, d2.cir.x, 0.32)
d2.y = c(0.799, d2.cir.y,0.199)
n.x = c(0.189, 0.295, 0.707, 0.707, 0.804, 0.804, 0.701, 0.287, 0.287, 0.189)
n.y = c(0.935, 0.935, 0.248, 0.935, 0.935, 0.063, 0.063, 0.747, 0.063, 0.063)
i.x = c(0.189, 0.295, 0.295, 0.189, 0.189)
i.y = c(0.935, 0.935, 0.063, 0.063, 0.935)
e.x = c(0.222, 0.787, 0.787, 0.324, 0.324, 0.757, 0.757, 0.324, 0.324,0.804,
0.804, 0.222)
e.y = c(0.935, 0.935, 0.834, 0.834, 0.564, 0.564, 0.464, 0.464, 0.163,0.163,
0.063, 0.063)
z.x = c(0.222,0.787,0.787,0.322,0.804,0.804,0.222,0.222,0.687,0.222)
z.y = c(0.935,0.935,0.834,0.163,0.163,0.063,0.063,0.163,0.834,0.834)
v.x = c(0.136, 0.259, 0.496, 0.734, 0.853, 0.543, 0.441)
v.y = c(0.935, 0.935, 0.163, 0.935, 0.935, 0.063, 0.063)
draw.ch = function(x1, y1, x2 = NULL, y2 = NULL, center.x,
color, alpha, xscale) {
rgb.col = col2rgb(color)/255
x1 = x1 * xscale + center.x - 0.5 * xscale
x2 = x2 * xscale + center.x - 0.5 * xscale
polygon(x1, y1, col = rgb(rgb.col[1], rgb.col[2], rgb.col[3],
alpha = alpha), border = NA)
# polygon(x2, y2, col = "black", border = NA)
polygon(x2, y2, col = "white", border = NA)
}
x1 = list(f.x, e.x, l.x, i.x, z.x, n.x, a1.x,v.x,i.x,d1.x,a1.x,d1.x)
y1 = list(f.y,e.y,l.y,i.y,z.y,n.y,a1.y,v.y,i.y,d1.y,a1.y,d1.y)
x2 = list(NULL,NULL,NULL,NULL,NULL,NULL,a2.x,NULL,NULL,d2.x,a2.x,d2.x)
y2 = list(NULL,NULL,NULL,NULL,NULL,NULL,a2.y,NULL,NULL,d2.y,a2.y,d2.y)
th = seq(pi/6, 2 * pi, length.out = 12)
cols = rainbow(200)
for (j in 1:999) {
th = th - pi/120
center.x = 3 + 5 * cos(th)
cols = c(cols[-1], cols[1])
alpha = 0.1 + (50 * (1 - sin(th)))/100
alpha = ifelse(alpha > 1, 1, alpha)
xscale = -sin(th) * 1.2
plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n")
plot.order = (1:12)[order(xscale > 0)]
for (k in 1:12) {
i = plot.order[k]
draw.ch(x1[[i]], y1[[i]], x2[[i]], y2[[i]], center.x[i],
color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 *
(i > 8)], alpha[i], xscale[i])
}
}
## Un Saludo,
## ________________________________________________________
## Miguel Ángel Rodríguez Muíños
## @mianromu
## Dirección Xeral de Innovación e Xestión da Saúde Pública
## Consellería de Sanidade
## Xunta de Galicia
##
## http://dxsp.sergas.es
Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos
é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se
vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A
distribución ou copia desta mensaxe non está autorizada.
Nota: La información contenida en este mensaje y sus posibles documentos
adjuntos es privada y confidencial y está dirigida únicamente a su
destinatario/a. Si usted no es el/la destinatario/a original de este mensaje,
por favor elimínelo. La distribución o copia de este mensaje no está autorizada.
See more languages: http://www.sergas.es/aviso_confidencialidad.htm
Muchas gracias Miguel Angel. Muy original, y muy friki jejeje. Feliz Navidad para ti también! El 14/12/2012 12:10, miguel.angel.rodriguez.muinos en sergas.es escribió:> f.x = c(0.193,0.703,0.703,0.295,0.295,0.703,0.703,0.295,0.295,0.193,0.193) > f.y = c(0.935,0.935,0.835,0.835,0.575,0.575,0.475,0.475,0.063,0.063,0.935) > e.x = c(0.222, 0.787, 0.787, 0.324, 0.324, 0.757, 0.757, 0.324, 0.324,0.804, 0.804, 0.222) > e.y = c(0.935, 0.935, 0.834, 0.834, 0.564, 0.564, 0.464, 0.464, 0.163,0.163, 0.063, 0.063) > l.x = c(0.222,0.324,0.324,0.804,0.804,0.222) > l.y = c(0.935,0.935,0.163,0.163,0.063,0.063) > a1.x = c(0.433, 0.546, 0.865, 0.746, 0.656, 0.328, 0.242, 0.136) > a1.y = c(0.935, 0.935, 0.063, 0.063, 0.326, 0.326, 0.063, 0.063) > a2.x = c(0.488, 0.629, 0.355) > a2.y = c(0.841, 0.418, 0.418) > n.x = c(0.189, 0.295, 0.707, 0.707, 0.804, 0.804, 0.701, 0.287, 0.287, 0.189) > n.y = c(0.935, 0.935, 0.248, 0.935, 0.935, 0.063, 0.063, 0.747, 0.063, 0.063) > d.x = c(0.218,0.56,0.56,0.56,0.56,0.32,0.218,0.32,0.32) > d.y = c(0.935,0.933,0.832,0.518,0.418,0.063,0.063,0.518,0.834) > d.cir.th = seq(pi/2, -pi/2, length.out = 50) > d1.cir.x = 0.32 + 0.515 * cos(d.cir.th) > d1.cir.y = 0.499 + 0.436 * sin(d.cir.th) > d2.cir.x = 0.32 + 0.4147 * cos(d.cir.th) > d2.cir.y = 0.499 + 0.3 * sin(d.cir.th) > d1.x = c(0.218, d1.cir.x, 0.32, 0.218) > d1.y = c(0.935, d1.cir.y, 0.063, 0.063) > d2.x = c(0.32, d2.cir.x, 0.32) > d2.y = c(0.799, d2.cir.y,0.199) > n.x = c(0.189, 0.295, 0.707, 0.707, 0.804, 0.804, 0.701, 0.287, 0.287, 0.189) > n.y = c(0.935, 0.935, 0.248, 0.935, 0.935, 0.063, 0.063, 0.747, 0.063, 0.063) > i.x = c(0.189, 0.295, 0.295, 0.189, 0.189) > i.y = c(0.935, 0.935, 0.063, 0.063, 0.935) > e.x = c(0.222, 0.787, 0.787, 0.324, 0.324, 0.757, 0.757, 0.324, 0.324,0.804, 0.804, 0.222) > e.y = c(0.935, 0.935, 0.834, 0.834, 0.564, 0.564, 0.464, 0.464, 0.163,0.163, 0.063, 0.063) > z.x = c(0.222,0.787,0.787,0.322,0.804,0.804,0.222,0.222,0.687,0.222) > z.y = c(0.935,0.935,0.834,0.163,0.163,0.063,0.063,0.163,0.834,0.834) > v.x = c(0.136, 0.259, 0.496, 0.734, 0.853, 0.543, 0.441) > v.y = c(0.935, 0.935, 0.163, 0.935, 0.935, 0.063, 0.063) > draw.ch = function(x1, y1, x2 = NULL, y2 = NULL, center.x, > color, alpha, xscale) { > rgb.col = col2rgb(color)/255 > x1 = x1 * xscale + center.x - 0.5 * xscale > x2 = x2 * xscale + center.x - 0.5 * xscale > polygon(x1, y1, col = rgb(rgb.col[1], rgb.col[2], rgb.col[3], > alpha = alpha), border = NA) > # polygon(x2, y2, col = "black", border = NA) > polygon(x2, y2, col = "white", border = NA) > } > x1 = list(f.x, e.x, l.x, i.x, z.x, n.x, a1.x,v.x,i.x,d1.x,a1.x,d1.x) > y1 = list(f.y,e.y,l.y,i.y,z.y,n.y,a1.y,v.y,i.y,d1.y,a1.y,d1.y) > x2 = list(NULL,NULL,NULL,NULL,NULL,NULL,a2.x,NULL,NULL,d2.x,a2.x,d2.x) > y2 = list(NULL,NULL,NULL,NULL,NULL,NULL,a2.y,NULL,NULL,d2.y,a2.y,d2.y) > th = seq(pi/6, 2 * pi, length.out = 12) > cols = rainbow(200) > for (j in 1:999) { > th = th - pi/120 > center.x = 3 + 5 * cos(th) > cols = c(cols[-1], cols[1]) > alpha = 0.1 + (50 * (1 - sin(th)))/100 > alpha = ifelse(alpha > 1, 1, alpha) > xscale = -sin(th) * 1.2 > plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n") > plot.order = (1:12)[order(xscale > 0)] > for (k in 1:12) { > i = plot.order[k] > draw.ch(x1[[i]], y1[[i]], x2[[i]], y2[[i]], center.x[i], > color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 * > (i > 8)], alpha[i], xscale[i]) > } > } > > > ## Un Saludo, > ## ________________________________________________________ > ## Miguel Ángel Rodríguez Muíños > ## @mianromu > ## Dirección Xeral de Innovación e Xestión da Saúde Pública > ## Consellería de Sanidade > ## Xunta de Galicia > ## > ## http://dxsp.sergas.es > > > > > > > > > > > > > > > > > > Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. > > Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. > > See more languages: http://www.sergas.es/aviso_confidencialidad.htm > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > >
Gracias!!
Sugiero un par de mejoras. Una estética a la hora de dibujar el gráfico y otra
para que incluso en RStudio funcione sin problemas (creando una ventana
nueva)...
Lo destaco en el código.
####################################
*win.graph(width=800, height=600)*
for (j in 1:999) {
for (j in 1:999) {
th = th - pi/120
center.x = 3 + 5 * cos(th)
cols = c(cols[-1], cols[1])
alpha = 0.1 + (50 * (1 - sin(th)))/100
alpha = ifelse(alpha > 1, 1, alpha)
xscale = -sin(th) * 1.2
plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n", *axes=F,
ylab="", xlab=""*)
plot.order = (1:12)[order(xscale > 0)]
for (k in 1:12) {
i = plot.order[k]
draw.ch(x1[[i]], y1[[i]], x2[[i]], y2[[i]], center.x[i],
color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 *
(i > 8)], alpha[i], xscale[i])
}
}
####################################
Saludos,
Carlos Ortega
www.qualityexcellence.es
2012/12/14 <miguel.angel.rodriguez.muinos@sergas.es>
> f.x = c(0.193,0.703,0.703,0.295,0.295,0.703,0.703,0.295,0.295,0.193,0.193)
> f.y = c(0.935,0.935,0.835,0.835,0.575,0.575,0.475,0.475,0.063,0.063,0.935)
> e.x = c(0.222, 0.787, 0.787, 0.324, 0.324, 0.757, 0.757, 0.324,
> 0.324,0.804, 0.804, 0.222)
> e.y = c(0.935, 0.935, 0.834, 0.834, 0.564, 0.564, 0.464, 0.464,
> 0.163,0.163, 0.063, 0.063)
> l.x = c(0.222,0.324,0.324,0.804,0.804,0.222)
> l.y = c(0.935,0.935,0.163,0.163,0.063,0.063)
> a1.x = c(0.433, 0.546, 0.865, 0.746, 0.656, 0.328, 0.242, 0.136)
> a1.y = c(0.935, 0.935, 0.063, 0.063, 0.326, 0.326, 0.063, 0.063)
> a2.x = c(0.488, 0.629, 0.355)
> a2.y = c(0.841, 0.418, 0.418)
> n.x = c(0.189, 0.295, 0.707, 0.707, 0.804, 0.804, 0.701, 0.287, 0.287,
> 0.189)
> n.y = c(0.935, 0.935, 0.248, 0.935, 0.935, 0.063, 0.063, 0.747, 0.063,
> 0.063)
> d.x = c(0.218,0.56,0.56,0.56,0.56,0.32,0.218,0.32,0.32)
> d.y = c(0.935,0.933,0.832,0.518,0.418,0.063,0.063,0.518,0.834)
> d.cir.th = seq(pi/2, -pi/2, length.out = 50)
> d1.cir.x = 0.32 + 0.515 * cos(d.cir.th)
> d1.cir.y = 0.499 + 0.436 * sin(d.cir.th)
> d2.cir.x = 0.32 + 0.4147 * cos(d.cir.th)
> d2.cir.y = 0.499 + 0.3 * sin(d.cir.th)
> d1.x = c(0.218, d1.cir.x, 0.32, 0.218)
> d1.y = c(0.935, d1.cir.y, 0.063, 0.063)
> d2.x = c(0.32, d2.cir.x, 0.32)
> d2.y = c(0.799, d2.cir.y,0.199)
> n.x = c(0.189, 0.295, 0.707, 0.707, 0.804, 0.804, 0.701, 0.287, 0.287,
> 0.189)
> n.y = c(0.935, 0.935, 0.248, 0.935, 0.935, 0.063, 0.063, 0.747, 0.063,
> 0.063)
> i.x = c(0.189, 0.295, 0.295, 0.189, 0.189)
> i.y = c(0.935, 0.935, 0.063, 0.063, 0.935)
> e.x = c(0.222, 0.787, 0.787, 0.324, 0.324, 0.757, 0.757, 0.324,
> 0.324,0.804, 0.804, 0.222)
> e.y = c(0.935, 0.935, 0.834, 0.834, 0.564, 0.564, 0.464, 0.464,
> 0.163,0.163, 0.063, 0.063)
> z.x = c(0.222,0.787,0.787,0.322,0.804,0.804,0.222,0.222,0.687,0.222)
> z.y = c(0.935,0.935,0.834,0.163,0.163,0.063,0.063,0.163,0.834,0.834)
> v.x = c(0.136, 0.259, 0.496, 0.734, 0.853, 0.543, 0.441)
> v.y = c(0.935, 0.935, 0.163, 0.935, 0.935, 0.063, 0.063)
> draw.ch = function(x1, y1, x2 = NULL, y2 = NULL, center.x,
> color, alpha, xscale) {
> rgb.col = col2rgb(color)/255
> x1 = x1 * xscale + center.x - 0.5 * xscale
> x2 = x2 * xscale + center.x - 0.5 * xscale
> polygon(x1, y1, col = rgb(rgb.col[1], rgb.col[2], rgb.col[3],
> alpha = alpha), border = NA)
> # polygon(x2, y2, col = "black", border = NA)
> polygon(x2, y2, col = "white", border = NA)
> }
> x1 = list(f.x, e.x, l.x, i.x, z.x, n.x, a1.x,v.x,i.x,d1.x,a1.x,d1.x)
> y1 = list(f.y,e.y,l.y,i.y,z.y,n.y,a1.y,v.y,i.y,d1.y,a1.y,d1.y)
> x2 = list(NULL,NULL,NULL,NULL,NULL,NULL,a2.x,NULL,NULL,d2.x,a2.x,d2.x)
> y2 = list(NULL,NULL,NULL,NULL,NULL,NULL,a2.y,NULL,NULL,d2.y,a2.y,d2.y)
> th = seq(pi/6, 2 * pi, length.out = 12)
> cols = rainbow(200)
> for (j in 1:999) {
> th = th - pi/120
> center.x = 3 + 5 * cos(th)
> cols = c(cols[-1], cols[1])
> alpha = 0.1 + (50 * (1 - sin(th)))/100
> alpha = ifelse(alpha > 1, 1, alpha)
> xscale = -sin(th) * 1.2
> plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n")
> plot.order = (1:12)[order(xscale > 0)]
> for (k in 1:12) {
> i = plot.order[k]
> draw.ch(x1[[i]], y1[[i]], x2[[i]], y2[[i]], center.x[i],
> color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 *
> (i > 8)], alpha[i], xscale[i])
> }
> }
>
>
> ## Un Saludo,
> ## ________________________________________________________
> ## Miguel Ángel Rodríguez Muíños
> ## @mianromu
> ## Dirección Xeral de Innovación e Xestión da Saúde Pública
> ## Consellería de Sanidade
> ## Xunta de Galicia
> ##
> ## http://dxsp.sergas.es
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Nota: A información contida nesta mensaxe e os seus posibles documentos
> adxuntos é privada e confidencial e está dirixida únicamente ó seu
> destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe,
> por favor elimínea. A distribución ou copia desta mensaxe non está
> autorizada.
>
> Nota: La información contenida en este mensaje y sus posibles documentos
> adjuntos es privada y confidencial y está dirigida únicamente a su
> destinatario/a. Si usted no es el/la destinatario/a original de este
> mensaje, por favor elimínelo. La distribución o copia de este mensaje no
> está autorizada.
>
> See more languages: http://www.sergas.es/aviso_confidencialidad.htm
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
[[alternative HTML version deleted]]
Uf, disculpad del copy&paste introduje un bucle adicional.
Este es el código correcto...
###########################################
*win.graph(width=800, height=600)*
for (j in 1:999) {
th = th - pi/120
center.x = 3 + 5 * cos(th)
cols = c(cols[-1], cols[1])
alpha = 0.1 + (50 * (1 - sin(th)))/100
alpha = ifelse(alpha > 1, 1, alpha)
xscale = -sin(th) * 1.2
plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n",* axes=F,
ylab="", xlab=""*)
plot.order = (1:12)[order(xscale > 0)]
for (k in 1:12) {
i = plot.order[k]
draw.ch(x1[[i]], y1[[i]], x2[[i]], y2[[i]], center.x[i],
color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 *
(i > 8)], alpha[i], xscale[i])
}
}
########################################
2012/12/14 Carlos Ortega <cof@qualityexcellence.es>
> ####################################
> *win.graph(width=800, height=600)*
> for (j in 1:999) {
> for (j in 1:999) {
> th = th - pi/120
> center.x = 3 + 5 * cos(th)
> cols = c(cols[-1], cols[1])
> alpha = 0.1 + (50 * (1 - sin(th)))/100
> alpha = ifelse(alpha > 1, 1, alpha)
> xscale = -sin(th) * 1.2
> plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n",
*axes=F,
> ylab="", xlab=""*)
> plot.order = (1:12)[order(xscale > 0)]
> for (k in 1:12) {
> i = plot.order[k]
> draw.ch(x1[[i]], y1[[i]], x2[[i]], y2[[i]], center.x[i],
> color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 *
> (i > 8)], alpha[i], xscale[i])
> }
> }
>
>
>
> ####################################
>
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
[[alternative HTML version deleted]]
miguel.angel.rodriguez.muinos en sergas.es
2012-Dec-14 11:58 UTC
[R-es] Feliz Navidad (R code)
Por cierto...
NO LO HE HECHO YO, eh?
Esta es la fuente...
http://experienceinstatistics.blogspot.com.es/2010/12/feliz-navidad-con-r.html
Un Saludo,
Miguel.
De: Carlos Ortega [mailto:cof@qualityexcellence.es]
Enviado el: viernes, 14 de diciembre de 2012 12:49
Para: Rodríguez Muíños, Miguel Ángel
CC: Lista R
Asunto: Re: [R-es] Feliz Navidad (R code)
Uf, disculpad del copy&paste introduje un bucle adicional.
Este es el código correcto...
###########################################
win.graph(width=800, height=600)
for (j in 1:999) {
th = th - pi/120
center.x = 3 + 5 * cos(th)
cols = c(cols[-1], cols[1])
alpha = 0.1 + (50 * (1 - sin(th)))/100
alpha = ifelse(alpha > 1, 1, alpha)
xscale = -sin(th) * 1.2
plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n", axes=F,
ylab="", xlab="")
plot.order = (1:12)[order(xscale > 0)]
for (k in 1:12) {
i = plot.order[k]
draw.ch<http://draw.ch>(x1[[i]], y1[[i]], x2[[i]], y2[[i]],
center.x[i],
color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 *
(i > 8)], alpha[i], xscale[i])
}
}
########################################
2012/12/14 Carlos Ortega
<cof@qualityexcellence.es<mailto:cof@qualityexcellence.es>>
####################################
win.graph(width=800, height=600)
for (j in 1:999) {
for (j in 1:999) {
th = th - pi/120
center.x = 3 + 5 * cos(th)
cols = c(cols[-1], cols[1])
alpha = 0.1 + (50 * (1 - sin(th)))/100
alpha = ifelse(alpha > 1, 1, alpha)
xscale = -sin(th) * 1.2
plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n", axes=F,
ylab="", xlab="")
plot.order = (1:12)[order(xscale > 0)]
for (k in 1:12) {
i = plot.order[k]
draw.ch<http://draw.ch>(x1[[i]], y1[[i]], x2[[i]], y2[[i]],
center.x[i],
color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 *
(i > 8)], alpha[i], xscale[i])
}
}
####################################
--
Saludos,
Carlos Ortega
www.qualityexcellence.es<http://www.qualityexcellence.es>
________________________________
Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos
é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se
vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A
distribución ou copia desta mensaxe non está autorizada.
Nota: La información contenida en este mensaje y sus posibles documentos
adjuntos es privada y confidencial y está dirigida únicamente a su
destinatario/a. Si usted no es el/la destinatario/a original de este mensaje,
por favor elimínelo. La distribución o copia de este mensaje no está autorizada.
See more languages: http://www.sergas.es/aviso_confidencialidad.htm
[[alternative HTML version deleted]]
O podrias modificar un poco el codigo en demo(''Xmas'') de
animation:
n <- length(speed <- runif(angle <- runif(x <- strsplit("FELIZ
NAVIDAD",
"")[[1]], 0, 360), 0, 15))
x11(width = 10, height = 3)
par(mar = rep(0, 4), bg = "white")
for (j in 1:1000) {
angle = angle + speed
dev.hold()
plot.new()
plot.window(c(1, n), c(0, 1))
for (i in 1:n) text(i, 0.5, x[i], srt = angle[i], cex = runif(1,
1, 4), col = sample(colors(), 1))
ani.pause(0.02)
}
Saludos,
Jorge.-
On Fri, Dec 14, 2012 at 10:48 PM, Carlos Ortega <> wrote:
> Uf, disculpad del copy&paste introduje un bucle adicional.
>
> Este es el código correcto...
>
> ###########################################
> *win.graph(width=800, height=600)*
> for (j in 1:999) {
> th = th - pi/120
> center.x = 3 + 5 * cos(th)
> cols = c(cols[-1], cols[1])
> alpha = 0.1 + (50 * (1 - sin(th)))/100
> alpha = ifelse(alpha > 1, 1, alpha)
> xscale = -sin(th) * 1.2
> plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n",*
axes=F,
> ylab="", xlab=""*)
> plot.order = (1:12)[order(xscale > 0)]
> for (k in 1:12) {
> i = plot.order[k]
> draw.ch(x1[[i]], y1[[i]], x2[[i]], y2[[i]], center.x[i],
> color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 *
> (i > 8)], alpha[i], xscale[i])
> }
> }
> ########################################
>
>
>
>
> 2012/12/14 Carlos Ortega <>
>
> > ####################################
> > *win.graph(width=800, height=600)*
> > for (j in 1:999) {
> > for (j in 1:999) {
> > th = th - pi/120
> > center.x = 3 + 5 * cos(th)
> > cols = c(cols[-1], cols[1])
> > alpha = 0.1 + (50 * (1 - sin(th)))/100
> > alpha = ifelse(alpha > 1, 1, alpha)
> > xscale = -sin(th) * 1.2
> > plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n",
*axes=F,
> > ylab="", xlab=""*)
> > plot.order = (1:12)[order(xscale > 0)]
> > for (k in 1:12) {
> > i = plot.order[k]
> > draw.ch(x1[[i]], y1[[i]], x2[[i]], y2[[i]], center.x[i],
> > color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120
*
> > (i > 8)], alpha[i], xscale[i])
> > }
> > }
> >
> >
> >
> > ####################################
> >
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
[[alternative HTML version deleted]]
Gracias Miguel. Felicidades para ti también. Un abrazo. 2012/12/14 <miguel.angel.rodriguez.muinos@sergas.es>> f.x = c(0.193,0.703,0.703,0.295,0.295,0.703,0.703,0.295,0.295,0.193,0.193) > f.y = c(0.935,0.935,0.835,0.835,0.575,0.575,0.475,0.475,0.063,0.063,0.935) > e.x = c(0.222, 0.787, 0.787, 0.324, 0.324, 0.757, 0.757, 0.324, > 0.324,0.804, 0.804, 0.222) > e.y = c(0.935, 0.935, 0.834, 0.834, 0.564, 0.564, 0.464, 0.464, > 0.163,0.163, 0.063, 0.063) > l.x = c(0.222,0.324,0.324,0.804,0.804,0.222) > l.y = c(0.935,0.935,0.163,0.163,0.063,0.063) > a1.x = c(0.433, 0.546, 0.865, 0.746, 0.656, 0.328, 0.242, 0.136) > a1.y = c(0.935, 0.935, 0.063, 0.063, 0.326, 0.326, 0.063, 0.063) > a2.x = c(0.488, 0.629, 0.355) > a2.y = c(0.841, 0.418, 0.418) > n.x = c(0.189, 0.295, 0.707, 0.707, 0.804, 0.804, 0.701, 0.287, 0.287, > 0.189) > n.y = c(0.935, 0.935, 0.248, 0.935, 0.935, 0.063, 0.063, 0.747, 0.063, > 0.063) > d.x = c(0.218,0.56,0.56,0.56,0.56,0.32,0.218,0.32,0.32) > d.y = c(0.935,0.933,0.832,0.518,0.418,0.063,0.063,0.518,0.834) > d.cir.th = seq(pi/2, -pi/2, length.out = 50) > d1.cir.x = 0.32 + 0.515 * cos(d.cir.th) > d1.cir.y = 0.499 + 0.436 * sin(d.cir.th) > d2.cir.x = 0.32 + 0.4147 * cos(d.cir.th) > d2.cir.y = 0.499 + 0.3 * sin(d.cir.th) > d1.x = c(0.218, d1.cir.x, 0.32, 0.218) > d1.y = c(0.935, d1.cir.y, 0.063, 0.063) > d2.x = c(0.32, d2.cir.x, 0.32) > d2.y = c(0.799, d2.cir.y,0.199) > n.x = c(0.189, 0.295, 0.707, 0.707, 0.804, 0.804, 0.701, 0.287, 0.287, > 0.189) > n.y = c(0.935, 0.935, 0.248, 0.935, 0.935, 0.063, 0.063, 0.747, 0.063, > 0.063) > i.x = c(0.189, 0.295, 0.295, 0.189, 0.189) > i.y = c(0.935, 0.935, 0.063, 0.063, 0.935) > e.x = c(0.222, 0.787, 0.787, 0.324, 0.324, 0.757, 0.757, 0.324, > 0.324,0.804, 0.804, 0.222) > e.y = c(0.935, 0.935, 0.834, 0.834, 0.564, 0.564, 0.464, 0.464, > 0.163,0.163, 0.063, 0.063) > z.x = c(0.222,0.787,0.787,0.322,0.804,0.804,0.222,0.222,0.687,0.222) > z.y = c(0.935,0.935,0.834,0.163,0.163,0.063,0.063,0.163,0.834,0.834) > v.x = c(0.136, 0.259, 0.496, 0.734, 0.853, 0.543, 0.441) > v.y = c(0.935, 0.935, 0.163, 0.935, 0.935, 0.063, 0.063) > draw.ch = function(x1, y1, x2 = NULL, y2 = NULL, center.x, > color, alpha, xscale) { > rgb.col = col2rgb(color)/255 > x1 = x1 * xscale + center.x - 0.5 * xscale > x2 = x2 * xscale + center.x - 0.5 * xscale > polygon(x1, y1, col = rgb(rgb.col[1], rgb.col[2], rgb.col[3], > alpha = alpha), border = NA) > # polygon(x2, y2, col = "black", border = NA) > polygon(x2, y2, col = "white", border = NA) > } > x1 = list(f.x, e.x, l.x, i.x, z.x, n.x, a1.x,v.x,i.x,d1.x,a1.x,d1.x) > y1 = list(f.y,e.y,l.y,i.y,z.y,n.y,a1.y,v.y,i.y,d1.y,a1.y,d1.y) > x2 = list(NULL,NULL,NULL,NULL,NULL,NULL,a2.x,NULL,NULL,d2.x,a2.x,d2.x) > y2 = list(NULL,NULL,NULL,NULL,NULL,NULL,a2.y,NULL,NULL,d2.y,a2.y,d2.y) > th = seq(pi/6, 2 * pi, length.out = 12) > cols = rainbow(200) > for (j in 1:999) { > th = th - pi/120 > center.x = 3 + 5 * cos(th) > cols = c(cols[-1], cols[1]) > alpha = 0.1 + (50 * (1 - sin(th)))/100 > alpha = ifelse(alpha > 1, 1, alpha) > xscale = -sin(th) * 1.2 > plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n") > plot.order = (1:12)[order(xscale > 0)] > for (k in 1:12) { > i = plot.order[k] > draw.ch(x1[[i]], y1[[i]], x2[[i]], y2[[i]], center.x[i], > color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 * > (i > 8)], alpha[i], xscale[i]) > } > } > > > ## Un Saludo, > ## ________________________________________________________ > ## Miguel Ángel Rodríguez Muíños > ## @mianromu > ## Dirección Xeral de Innovación e Xestión da Saúde Pública > ## Consellería de Sanidade > ## Xunta de Galicia > ## > ## http://dxsp.sergas.es > > > > > > > > > > > > > > > > > > Nota: A información contida nesta mensaxe e os seus posibles documentos > adxuntos é privada e confidencial e está dirixida únicamente ó seu > destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, > por favor elimínea. A distribución ou copia desta mensaxe non está > autorizada. > > Nota: La información contenida en este mensaje y sus posibles documentos > adjuntos es privada y confidencial y está dirigida únicamente a su > destinatario/a. Si usted no es el/la destinatario/a original de este > mensaje, por favor elimínelo. La distribución o copia de este mensaje no > está autorizada. > > See more languages: http://www.sergas.es/aviso_confidencialidad.htm > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- «But Gwindor answered: ''The doom lies in yourself, not in your name.''» JRR Tolkien [[alternative HTML version deleted]]
Muchísimas gracias
Tiene dos cosas valorables, por un lado el utilizar algún programa que
dibuja y coloca arreglitos lindos, estilo diseño gráfico, visualmente es más
potente pero no tiene esa delicadeza de hacerlo con las herramientas de
todos los días, creo que como saludo es mucho más cálido regalar el código
que lleva tiempo antes de lo automático que se logra con los movimientos de
mouse (o dedos en celulares, tablet). Lo segundo que valoro dentro del
código es: ¿como escribieron esos valores para las letras
(f.x=c(0.193,0.....)? Hay que hacerlo, si con apretar solo una tecla se
obtiene el carácter correspondiente, te tienen que gustar los números o
busca un psiquiatra.
Por último un pedido a la lista, si deseamos una Navidad como Dios manda,
tengamos cuidado a quién le enviamos el código de saludo navideño en R
porque por culpa de Miguel nos internan a todos en una clínica para salud
mental.
Javier Marcuzzi
-----Mensaje original-----
From: miguel.angel.rodriguez.muinos en sergas.es
Sent: Friday, December 14, 2012 8:10 AM
To: r-help-es en r-project.org
Subject: [R-es] Feliz Navidad (R code)
f.x = c(0.193,0.703,0.703,0.295,0.295,0.703,0.703,0.295,0.295,0.193,0.193)
f.y = c(0.935,0.935,0.835,0.835,0.575,0.575,0.475,0.475,0.063,0.063,0.935)
e.x = c(0.222, 0.787, 0.787, 0.324, 0.324, 0.757, 0.757, 0.324, 0.324,0.804,
0.804, 0.222)
e.y = c(0.935, 0.935, 0.834, 0.834, 0.564, 0.564, 0.464, 0.464, 0.163,0.163,
0.063, 0.063)
l.x = c(0.222,0.324,0.324,0.804,0.804,0.222)
l.y = c(0.935,0.935,0.163,0.163,0.063,0.063)
a1.x = c(0.433, 0.546, 0.865, 0.746, 0.656, 0.328, 0.242, 0.136)
a1.y = c(0.935, 0.935, 0.063, 0.063, 0.326, 0.326, 0.063, 0.063)
a2.x = c(0.488, 0.629, 0.355)
a2.y = c(0.841, 0.418, 0.418)
n.x = c(0.189, 0.295, 0.707, 0.707, 0.804, 0.804, 0.701, 0.287, 0.287,
0.189)
n.y = c(0.935, 0.935, 0.248, 0.935, 0.935, 0.063, 0.063, 0.747, 0.063,
0.063)
d.x = c(0.218,0.56,0.56,0.56,0.56,0.32,0.218,0.32,0.32)
d.y = c(0.935,0.933,0.832,0.518,0.418,0.063,0.063,0.518,0.834)
d.cir.th = seq(pi/2, -pi/2, length.out = 50)
d1.cir.x = 0.32 + 0.515 * cos(d.cir.th)
d1.cir.y = 0.499 + 0.436 * sin(d.cir.th)
d2.cir.x = 0.32 + 0.4147 * cos(d.cir.th)
d2.cir.y = 0.499 + 0.3 * sin(d.cir.th)
d1.x = c(0.218, d1.cir.x, 0.32, 0.218)
d1.y = c(0.935, d1.cir.y, 0.063, 0.063)
d2.x = c(0.32, d2.cir.x, 0.32)
d2.y = c(0.799, d2.cir.y,0.199)
n.x = c(0.189, 0.295, 0.707, 0.707, 0.804, 0.804, 0.701, 0.287, 0.287,
0.189)
n.y = c(0.935, 0.935, 0.248, 0.935, 0.935, 0.063, 0.063, 0.747, 0.063,
0.063)
i.x = c(0.189, 0.295, 0.295, 0.189, 0.189)
i.y = c(0.935, 0.935, 0.063, 0.063, 0.935)
e.x = c(0.222, 0.787, 0.787, 0.324, 0.324, 0.757, 0.757, 0.324, 0.324,0.804,
0.804, 0.222)
e.y = c(0.935, 0.935, 0.834, 0.834, 0.564, 0.564, 0.464, 0.464, 0.163,0.163,
0.063, 0.063)
z.x = c(0.222,0.787,0.787,0.322,0.804,0.804,0.222,0.222,0.687,0.222)
z.y = c(0.935,0.935,0.834,0.163,0.163,0.063,0.063,0.163,0.834,0.834)
v.x = c(0.136, 0.259, 0.496, 0.734, 0.853, 0.543, 0.441)
v.y = c(0.935, 0.935, 0.163, 0.935, 0.935, 0.063, 0.063)
draw.ch = function(x1, y1, x2 = NULL, y2 = NULL, center.x,
color, alpha, xscale) {
rgb.col = col2rgb(color)/255
x1 = x1 * xscale + center.x - 0.5 * xscale
x2 = x2 * xscale + center.x - 0.5 * xscale
polygon(x1, y1, col = rgb(rgb.col[1], rgb.col[2], rgb.col[3],
alpha = alpha), border = NA)
# polygon(x2, y2, col = "black", border = NA)
polygon(x2, y2, col = "white", border = NA)
}
x1 = list(f.x, e.x, l.x, i.x, z.x, n.x, a1.x,v.x,i.x,d1.x,a1.x,d1.x)
y1 = list(f.y,e.y,l.y,i.y,z.y,n.y,a1.y,v.y,i.y,d1.y,a1.y,d1.y)
x2 = list(NULL,NULL,NULL,NULL,NULL,NULL,a2.x,NULL,NULL,d2.x,a2.x,d2.x)
y2 = list(NULL,NULL,NULL,NULL,NULL,NULL,a2.y,NULL,NULL,d2.y,a2.y,d2.y)
th = seq(pi/6, 2 * pi, length.out = 12)
cols = rainbow(200)
for (j in 1:999) {
th = th - pi/120
center.x = 3 + 5 * cos(th)
cols = c(cols[-1], cols[1])
alpha = 0.1 + (50 * (1 - sin(th)))/100
alpha = ifelse(alpha > 1, 1, alpha)
xscale = -sin(th) * 1.2
plot(1, xlim = c(-2, 8), ylim = c(-2.5, 3.5), type = "n")
plot.order = (1:12)[order(xscale > 0)]
for (k in 1:12) {
i = plot.order[k]
draw.ch(x1[[i]], y1[[i]], x2[[i]], y2[[i]], center.x[i],
color = cols[k + 60 * ( i >= 6 & i <= 8 ) + 120 *
(i > 8)], alpha[i], xscale[i])
}
}
## Un Saludo,
## ________________________________________________________
## Miguel Ángel Rodríguez Muíños
## @mianromu
## Dirección Xeral de Innovación e Xestión da Saúde Pública
## Consellería de Sanidade
## Xunta de Galicia
##
## http://dxsp.sergas.es
Nota: A información contida nesta mensaxe e os seus posibles documentos
adxuntos é privada e confidencial e está dirixida únicamente ó seu
destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe,
por favor elimínea. A distribución ou copia desta mensaxe non está
autorizada.
Nota: La información contenida en este mensaje y sus posibles documentos
adjuntos es privada y confidencial y está dirigida únicamente a su
destinatario/a. Si usted no es el/la destinatario/a original de este
mensaje, por favor elimínelo. La distribución o copia de este mensaje no
está autorizada.
See more languages: http://www.sergas.es/aviso_confidencialidad.htm
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es