簡體   English   中英

R情節圖例過濾

[英]R Plotly legend filtering

我已經從plotly網站( https://plot.ly/ggplot2/geom_bar )復制了該代碼示例,但是該圖形的行為與過濾后的示例有所不同。 我怎樣才能重塑?

碼:

library(plotly)

DF <- read.table(text="Rank F1     F2     F3
1    500    250    50
2    400    100    30
3    300    155    100
4    200    90     10", header=TRUE)

library(reshape2)
DF1 <- melt(DF, id.var="Rank")

p <- ggplot(DF1, aes(x = Rank, y = value, fill = variable)) +
  geom_bar(stat = "identity")

p <- ggplotly(p)

通過網絡: 陰謀網站
我的RStudio查看器:

R Studio查看器

如果將示例代碼和已發布的代碼生成的數據進行緊密比較,則會發現兩個區別。

  1. “錯誤”圖具有base
  2. 兩個圖之間的順序相反

為了防止在切換軌跡時堆疊的條形圖不塌陷,您需要擦除base值(並且出於美學原因,請反轉軌跡的順序)。

library(plotly)

DF <- read.table(text="Rank F1     F2     F3
1    500    250    50
2    400    100    30
3    300    155    100
4    200    90     10", header=TRUE)

library(reshape2)
DF1 <- melt(DF, id.var="Rank")

gp <- ggplot(DF1, aes(x = Rank, y = value, fill = variable)) +
  geom_bar(stat = "identity")

p <- ggplotly(gp)

for (i in 1:length(p$x$data)) {
  p$x$data[[i]]$base <- c()
  tmp <- p$x$data[[i]]
  p$x$data[[i]] <- p$x$data[[length(p$x$data) - i + 1]]
  p$x$data[[length(p$x$data) - i + 1]] <- tmp
}
p

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM