Solución:
También puedes usar theme_nothing()
del paquete cowplot:
require(cowplot)
qplot(1:10, (1:10)^2, geom='line') + theme_nothing() +
scale_x_continuous(expand=c(0,0)) +
scale_y_continuous(expand=c(0,0)) +
labs(x = NULL, y = NULL)
Desafortunadamente, aún necesita agregar labs(x = NULL, y = NULL)
, porque no hay forma en la maquinaria temática de ggplot2 para eliminar los ejes por completo. Y necesitas configurar expand=c(0,0)
en los parámetros de la escala para asegurarse de que la escala no se extienda más allá de su rango de datos.
Resultado:
Después de usar su código, veo más claramente lo que está buscando. Esta:
gg <- ggplot(data=df, aes(V1, V2, color=cl[V3]))
gg +
geom_point() +
labs(x = NULL, y = NULL, title = NULL) +
scale_x_continuous(expand = c(0, 0), limits = range(df$V1)) +
scale_y_continuous(expand = c(0, 0), limits = range(df$V2)) +
scale_colour_manual(values = sort(c("#00000000", rainbow(35)), decreasing = FALSE)) +
theme(
panel.background = element_rect(fill = "transparent", colour = NA),
plot.background = element_rect(fill = "transparent", colour = NA),
panel.grid = element_blank(),
panel.border = element_blank(),
plot.margin = unit(c(0, 0, 0, 0), "null"),
panel.margin = unit(c(0, 0, 0, 0), "null"),
axis.ticks = element_blank(),
axis.text = element_blank(),
axis.title = element_blank(),
axis.line = element_blank(),
legend.position = "none",
axis.ticks.length = unit(0, "null"),
axis.ticks.margin = unit(0, "null"),
legend.margin = unit(0, "null")
)
tienes que quitar las etiquetas, no expandir los ejes x & y y establecer límites estrictos. los null
s también son importantes. ‘
Esto también se puede hacer haciendo gb <- ggplotGrob(gg)
y editar manualmente los grobs y los parámetros, pero creo que probablemente esto le proporcione lo que necesita.
Un enfoque que selecciona solo el panel de trazado del diseño de ggplot. Crea el ggplot, estableciendo elementos dentro del panel de la trama en element_blank, y sin expansión de las escalas xey. Luego crea el grupo ggplot para que el panel de trazado solo se pueda seleccionar desde el diseño.
Edición menor: Actualización a ggplot2 2.2.0
library(ggplot2)
library(grid)
max_iter=25
cl=colours()
step=seq(-2,0.8,by=0.005)
points=array(0,dim=c(length(step)^2,3))
t=0
for(a in step) {
for(b in step+0.6) {
x=0;y=0;n=0;dist=0
while(n<max_iter & dist<4) {
n=n+1
newx=a+x^2-y^2
newy=b+2*x*y
dist=newx^2+newy^2
x=newx;y=newy
}
if(dist<4) {
color=24 # black
} else {
color=n*floor(length(cl)/max_iter)
}
t=t+1
points[t,]=c(a,b,color)
}
}
df=as.data.frame(points)
# ggplot with elements in the plot panel set to element_blank()
# and no expansion on the scales
p = ggplot(data=df, aes(V1, V2, color=cl[V3]))+
geom_point() +
scale_x_continuous(expand = c(0,0), limits=range(df$V1)) +
scale_y_continuous(expand = c(0,0), limits=range(df$V2))+
theme(panel.grid=element_blank(),
panel.background=element_rect(fill = "transparent",colour = NA),
panel.border=element_blank()) +
scale_colour_manual(values=sort(c("#00000000", rainbow(35)), decreasing=FALSE))
# Get the ggplot grob
gt = ggplotGrob(p)
# Select plot panel only
# gt = gt[6,4] # Using index notation; OR
gt = gtable::gtable_filter(gt, "panel")
# Draw it
grid.newpage()
grid.draw(gt)
# Set up a print method
class(gt) = c("Panel", class(gt))
print.Panel <- function(x) {
grid.newpage()
grid.draw(x)
}
gt
ggsave('mandelbrot.png', gt)