曲线ggplotly R下的区域未按预期渲染

问题描述

我用以下数据集和ggplot2创建了一个

我从下面的链接下载了CSV数据集

https://www.kaggle.com/dataset/e392d3cfbb5749653d5c82f4bec1daa03628fb06d374fad84eac319f1b3f982422

我使用的代码如下

 library(readr)
 library(ggplot2)
 library(plotly)

下一步,我从CSV文件创建数据框

DF <- read_csv("C:/Users/mysystem/Desktop/Random3.csv")####Please set your working directory here

现在我使用ggplot创建一个

p2<-ggplot(DF,aes(x=Col1,y=Col2,group=ID)) +
 geom_line(size=.5) +  geom_ribbon(data=subset(DF,Col1>1  ),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') 

上图正确显示了曲线下的面积。但是,当我运行ggplotly时,曲线下的区域会反转

ggplotly(p2)

有没有办法可以避免这种情况。在某些情况下,阴影区域似乎超出了曲线下方的区域,在这种情况下,似乎移至了曲线的倒数。我要求某人看看。

解决方法

我认为您只是想要geom_area而不是geom_ribbon。您也可以将第一个值设置为0而不是跳过它,以防止反向填充结果多边形。

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)

enter image description here