1 2 | set.seed(1313); sample(1:96, 4, replace=FALSE) # [1] 85 37 67 46 |
W ten sposób wybrałem cztery z 96 maili otrzymanych w ramach konkursu okładkowego. Zdecydowałem się na cztery osoby zamiast wcześniej planowanych dwóch, ponieważ i liczba zgłoszeń i wartość zgłaszanych komentarzy znacznie przewyższyła moje oczekiwania. Bardzo dziękuję wszystkim za pomoc!
Wylosowane numerki należały do Dariusza P., Grzegorza S., Dominika M. i Marty M. Wylosowani powinny już otrzymać maila z pytaniem o adres do wysyłki.
Które okładki były wybierane?
Okładka A – 14, B – 15, C – 13, D – 10, E – 12, F – 32 razy.
Okładka F podobała się częściej, ale patrząc na całą pulę głosów zebrała tylko 1/3 wszystkich głosów.
Dużym zaskoczeniem był dla mnie brak jednego faworyta. Byłem przekonany, że osobie maczającej palce w tworzenie okładki trudno na chłodno ocenić, która jest lepsza od której (stąd apel o pomoc) ale, że istnieje ta jedna, która będzie się podobać większości (stąd nadzieja na wyłonienie faworyta w sondażu). To przekonanie zostało zderzone z wynikami eksperymentu.
Do druku wysłany zostanie projekt wykonany na bazie otrzymanych uwag. Mnie się on bardzo podoba, bardziej niż każda z wyjściowych propozycji, mam nadzieję, że i Wam się spodoba.
A na koniec kilka słów o historii, czyli o puchaczu z okładek pierwszego i drugiego wydania. Puchacz pojawia się na okładkach różnych książek o R, np. ,,R Cookbook” wydanego przez O’Reilly trzy lata po premierze ,,Przewodnika…’. Sama grafika z okładki to stereogram. Aby zobaczyć go w trzech wymiarach trzeba rozszczepić wzrok.
Jak zrobić taki stereogram? Oczywiście w R 😉
Poniżej przepis
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | w1 = rnorm(40,0,0.2) w2 = rnorm(40,0,0.2) w3 = rnorm(40,0,0.2) x = w1 - 0.01 y = w2/2 + 0.4 z = 0.5 -w3/ (1 + w1^2 + w2^2) # puchacz z lewej par(mar=c(0,0,0,0)) plot(c(-2,2),c(-0.2,2),type="n",xlab="",ylab="",bty="n",xaxt="n",yaxt="n") xx = seq(-1.2,1.2,0.01) lines(xx - (1 - xx^2)/25 + 1/50, 1-xx^6 ,lwd=3,col="grey90") lines(xx - (1 - xx^2)/25 + 1/50, 1-xx^4 ,lwd=3,col="grey50") lines(xx - (1 - xx^2)/25 + 1/50, 1-abs(xx^3) ,lwd=3,col="grey30") lines(xx - (1 - xx^2)/25 + 1/50, 1-xx^2 ,lwd=3,col="grey20") lines(xx - (1 - xx^2)/25 + 1/50, 1-abs(xx) ,lwd=3,col="grey10") curve(cos(30*x)/20, -0.75, -0.3,add=T, lwd=3,col="red") curve(cos(30*x)/20, 0.75, 0.3,add=T, lwd=3,col="red") text(0.55,0.35,expression(y==1-abs(x)),srt=-60, col="grey10") text(0.63 + 0.01,0.47,expression(y==1-x^2),srt=-67, col="grey20") text(0.9 + 0.02, 0.55,expression(y==1-x^6),srt=-80, col="grey50") xt = x+z/25 points(xt,y, pch=19, cex=0.7) #data.ellipse(x,y,add=T,plot.points=F,levels=c(0.4,0.85), center.cex=0) # puchacz z prawej par(mar=c(0,0,0,0)) plot(c(-2,2),c(-0.2,2),type="n",xlab="",ylab="",bty="n",xaxt="n",yaxt="n") #arrows(-1.5,-0.2,-1.5,2,lwd=3,angle=15, length=0.5) arrows(-1.5,0,-1.5,2,lwd=3,angle=15, length=0.5) axis(2,line=-5.3,at=seq(0,1.6,0.02),labels=F,tcl=-0.3) axis(2,line=-5.3,at=seq(0,1.6,0.1),labels=F,tcl=-0.5) axis(2,line=-5.3,at=seq(0.2,1.6,0.2),labels=T,tcl=-0.8,las=2,cex.axis=0.8) xx = seq(-1.2,1.2,0.01) lines(xx + (1 - xx^2)/25 - 1/50, 1-xx^6 ,lwd=3,col="grey90") lines(xx + (1 - xx^2)/25 - 1/50, 1-xx^4 ,lwd=3,col="grey50") lines(xx + (1 - xx^2)/25 - 1/50, 1-abs(xx^3) ,lwd=3,col="grey30") lines(xx + (1 - xx^2)/25 - 1/50, 1-xx^2 ,lwd=3,col="grey20") lines(xx + (1 - xx^2)/25 - 1/50, 1-abs(xx) ,lwd=3,col="grey10") curve(cos(30*x)/20, -0.75, -0.3,add=T, lwd=3,col="red") curve(cos(30*x)/20, 0.75, 0.3,add=T, lwd=3,col="red") text(0.55,0.35,expression(y==1-abs(x)),srt=-60, col="grey10") text(0.63 - 0.01,0.47,expression(y==1-x^2),srt=-67, col="grey20") text(0.9 - 0.02, 0.55,expression(y==1-x^6),srt=-80, col="grey50") xt = x-z/25 points(xt,y, pch=19, cex=0.7) #data.ellipse(x,y,add=T,plot.points=F,levels=c(0.4,0.85), center.cex=0) |