# hyperparaboloid_grid.R
hyperparaboloid_grid <- function(n=80){
phi <- (1+sqrt(5))/2
m <- matrix(NA,n,n)
ax <- seq(-1,1,2/(n-1))
for (i in seq(n)){
for (j in seq(n)){
m[i,j] <- 2-ax[i]*ax[j]
}
}
rownames(m) <- paste0('r',seq(nrow(m)))
colnames(m)<- paste0('c',seq(ncol(m)))
mm<- melt(m)
mm$color <- 0
red_j <- n-round(n/phi)
red_i <- round(n/phi)
colnames(mm) <- c('r','c','value','color')
mm[mm$r == paste0('r',red_i) & mm$c == paste0('c',red_j), 'color' ] <- 1
ggplot(mm) +
geom_point(aes(r,c,size=jitter(value**3,amount =1),color=factor(color)),inherit.aes = F)+
scale_color_manual(values=c('black','red'))+
theme_void()+
theme(legend.position="none")+
coord_equal()
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.