El área bajo la curva ggplotly R no se representa según las expectativas
Creé una trama con el siguiente conjunto de datos y ggplot2
Descargué el conjunto de datos en CSV desde el siguiente enlace
https://www.kaggle.com/dataset/e392d3cfbb5749653d5c82f4bec1daa03628fb06d374fad84eac319f1b3f982422
El código que he usado es el siguiente
library(readr)
library(ggplot2)
library(plotly)
A continuación, creo el marco de datos a partir del archivo CSV.
DF <- read_csv("C:/Users/mysystem/Desktop/Random3.csv")####Please set your working directory here
Ahora creo una trama usando ggplot
p2<-ggplot(DF, aes(x=Col1, y=Col2, group=ID)) +
geom_line(size=.5) + geom_ribbon(data=subset(DF, Col1>1 ),aes(x=Col1,ymax=Col2,
fill=ID),ymin=0,alpha=0.3 ) +
scale_fill_manual(name='Legend', values=c("green4", "red"), labels=c("A", "B" ))+labs(x="Col1",
y="Col2")+ xlim(0, 10000)+ theme_bw()# +theme(legend.position='none')
El gráfico anterior muestra correctamente el área bajo las curvas. Sin embargo, cuando ejecuto ggplotly, el área bajo las curvas se invierte
ggplotly(p2)
¿Hay alguna manera de evitar esto? El área sombreada parece moverse más allá del área bajo las curvas en algunos casos y, en este caso, parece moverse hacia el inverso de la curva. Pido a alguien que eche un vistazo.
Respuestas
Creo que solo estás queriendo geom_area
en lugar de geom_ribbon
. También puede establecer el primer valor en 0 en lugar de omitirlo para evitar el relleno inverso que tiene el polígono resultante.
library(ggplot2)
library(plotly)
DF <- read.csv("Random3.csv")
DF$Col2[DF$Col1 == 0] <- 0
p2 <- ggplot(DF, aes(x = Col1, y = Col2, group = ID)) +
geom_line(size = 0.5) +
geom_area(aes(x = Col1, fill = ID), alpha = 0.3,
position = "identity") +
scale_fill_manual(name = 'Legend',
values = c("green4", "red"),
labels = c("A", "B")) +
labs(x = "Col1", y = "Col2") +
xlim(0, 10000) +
theme_bw()
p2
ggplotly(p2)
