3 votos

¿Por qué mi gráfico de área apilada en ggplot2 se muestra como líneas apiladas?

Tengo un problema al intentar crear mi gráfico de áreas apiladas en ggplot2 en R, por alguna razón está saliendo como una línea apilada;

por ejemplo, datos:

library(ggplot2)

Sector <- rep(c("S01","S02","S03","S04","S05","S06","S07"),times=7)
Year <- rep(c("1950","1960","1970","1980","1990","2000","2010"),each=7)
Value <- runif(49, 10, 100)
df <- data.frame(Sector,Year,Value)

y luego usando ggplot2 para crear un gráfico de áreas apiladas tradicional;

ggplot(df,aes(Year, Value,fill=Sector))+geom_area(aes(colour=Sector),position="stack")

para mí, eso devuelve una línea apilada como se muestra abajo. ¿Es mi versión de R? ¿o mi código? el código de ggplot2 parece ser igual que en otros ejemplos de áreas apiladas que puedo encontrar en línea, pero obtengo resultados extraños y no puedo encontrar información al respecto.

enter image description here

0 votos

@Aaron Dado que esta publicación está fuera de tema, ¿no podría ser migrada a stack overflow? Ciertamente no estoy a nivel de moderador, pero he visto preguntas marcadas como "migradas" o algo equivalente. Es una pregunta+respuesta útil pero definitivamente no pertenece aquí.

0 votos

@user3386170 Gracias por la información. Desafortunadamente, esta pregunta es demasiado antigua para ser migrada a SO, ya que debe ser dentro de los 60 días posteriores a la publicación. Más detalles aquí: meta.stackexchange.com/questions/10249/…

0 votos

@Aaron Gracias por la información sobre la migración. Ahora que he leído la información que enlazaste, tendré en cuenta que puedo marcar las publicaciones como fuera de tema para llamar la atención.

6voto

Nelson Reis Puntos 2889
# hacerlo reproducible
set.seed(1492)
Sector <- rep(c("S01","S02","S03","S04","S05","S06","S07"),times=7)
Year <- rep(c("1950","1960","1970","1980","1990","2000","2010"),each=7)
Value <- runif(49, 10, 100)
df <- data.frame(Sector,Year,Value)

gg <- ggplot(df, aes(x=as.numeric(as.character(Year)), y=Value))
gg <- gg + geom_area(aes(colour=Sector, fill=Sector))
gg

enter image description here

Esta es una forma alternativa:

gg <- ggplot(df, aes(x=as.numeric(Year), y=Value))
gg <- gg + geom_area(aes(colour=Sector, fill=Sector))
gg <- gg + scale_x_discrete(labels=levels(df$Year))
gg

0 votos

¿Se ve bien, es simplemente porque el Año necesita ser representado como un valor numérico y no como un factor?

0 votos

Aye. ese es un req para el estético x en geom_area. podrías simplemente hacer Year numérico en df también.

0 votos

Encantadoras gracias, ¡ahora jugaré con los colores, etc.!

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X