Khu vực dưới đường cong ggplotly R không hiển thị như mong đợi
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
Tôi nghĩ bạn chỉ muốn geom_area
thay 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)
