พื้นที่ใต้เส้นโค้ง ggplotly R ไม่แสดงผลตามความคาดหมาย

Aug 16 2020

ฉันได้สร้างพล็อตด้วยชุดข้อมูลต่อไปนี้และ ggplot2

ฉันดาวน์โหลดชุดข้อมูลใน CSV จากลิงค์ด้านล่าง

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

รหัสที่ฉันใช้มีดังนี้

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

ต่อไปฉันสร้าง dataframe จากไฟล์ 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  ),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') 

พล็อตด้านบนแสดงพื้นที่ใต้เส้นโค้งอย่างเหมาะสม อย่างไรก็ตามเมื่อฉันเรียกใช้ ggplotly พื้นที่ภายใต้เส้นโค้งจะกลับหัว

ggplotly(p2)

มีวิธีใดบ้างที่สามารถหลีกเลี่ยงได้ พื้นที่แรเงาดูเหมือนจะเคลื่อนที่ไปไกลกว่าพื้นที่ใต้เส้นโค้งในบางกรณีและในกรณีนี้ดูเหมือนว่าจะเคลื่อนที่ไปยังส่วนผกผันของเส้นโค้ง ฉันขอให้ใครสักคนมาดู

คำตอบ

1 AllanCameron Aug 16 2020 at 19:25

ฉันคิดว่าคุณเพียงแค่ต้องการแทน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)