Khu vực dưới đường cong ggplotly R không hiển thị như mong đợi

Aug 16 2020

Tôi đã tạo một âm mưu với tập dữ liệu sau và ggplot2

Tôi đã tải xuống tập dữ liệu trong CSV từ liên kết bên dưới

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

Mã tôi đã sử dụng như sau

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

Tiếp theo, tôi tạo khung dữ liệu từ tệp CSV

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

Bây giờ tôi tạo một cốt truyện bằng 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') 

Biểu đồ trên cho thấy diện tích dưới các đường cong một cách chính xác. Tuy nhiên, khi tôi chạy ggplotly, khu vực dưới đường cong bị đảo ngược

ggplotly(p2)

Có cách nào có thể tránh được điều này không. Vùng bóng mờ dường như di chuyển ra ngoài vùng dưới đường cong trong một số trường hợp và trong trường hợp này dường như di chuyển đến phần nghịch đảo của đường cong. tôi yêu cầu ai đó xem qua.

Trả lời

1 AllanCameron Aug 16 2020 at 19:25

Tôi nghĩ bạn chỉ muốn geom_areathay vì geom_ribbon. Bạn cũng có thể đặt giá trị đầu tiên thành 0 thay vì bỏ qua nó để ngăn việc điền ngược lại mà đa giác kết quả có.

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)