R绘图图例过滤

R绘图图例过滤,r,plot,ggplot2,plotly,R,Plot,Ggplot2,Plotly,我已经从plotly网站()复制粘贴了代码示例,但图形在过滤时的行为与示例不同;我怎么能把我的头发改成那样呢 代码: library(plotly) DF如果您将示例代码生成的数据与发布的代码进行仔细比较,您可以看到两个差异 “错误”图形具有base值 两个图之间的顺序相反 为了防止堆叠条形图在切换轨迹时不会折叠,需要删除基值值(出于美观原因,需要反转轨迹顺序) library(plotly) DF您所说的过滤是什么意思。变量F2在绘图上被排除,通过单击legende进行过滤编辑您的问题以及您使

我已经从plotly网站()复制粘贴了代码示例,但图形在过滤时的行为与示例不同;我怎么能把我的头发改成那样呢

代码:

library(plotly)

DF如果您将示例代码生成的数据与发布的代码进行仔细比较,您可以看到两个差异

  • “错误”图形具有
    base
  • 两个图之间的顺序相反
  • 为了防止堆叠条形图在切换轨迹时不会折叠,需要删除
    基值
    值(出于美观原因,需要反转轨迹顺序)

    library(plotly)
    
    DF您所说的过滤是什么意思。变量
    F2
    在绘图上被排除,通过单击legende进行过滤编辑您的问题以及您使用的代码在没有图例过滤的情况下@RUser好吧,也许我使用了一个错误的短语,它是通过直接点击图例来过滤的,所以它没有写在代码上(如果你想要的话)。Plotly生成交互式绘图。
    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)
    
    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