2017-03-16 31 views
0

我希望能夠在R中呈現一個交互式圖形,該圖形呈現線條/條/根據特定因素分組的測量值,並且能夠使一個或多個因素的級別(組)消失,並讓x和y軸適應這一點,並對此選擇作出響應。R交互式圖形 - 刪除因子級別元素並使座標軸適應

實施例:

df <- data.frame(factor1 = c(rep("a", 3), rep("b", 3), rep("c", 3)), 
      xAxisVar = c(1:7, 5, 9), 
      yAxisVar = c(1:7, 5, 25)) 

ggplot(df, aes(xAxisVar, yAxisVar, group = factor1, color = factor1)) + 
    geom_line() + 
    geom_point() 

enter image description here

在該曲線圖的y軸的延伸以到達因子水平的 「c」 25,因爲1 「大」 觀察。我希望能夠按下「c」或將其過濾出來,並讓y軸對此進行響應,重新渲染繪圖達到6個左右。

我試過plotlyggplotly,你可以自動讓組「c」消失,但是沒有情節重新渲染來解釋這個。建議?

回答

2

你提到ggplotly,所以如果你是開放的plotly,你可以嘗試:

library(plotly) 
library(reshape2) 

#from long to wide 
df_wide <- dcast(df, xAxisVar ~ factor1, value.var="yAxisVar") 

plot_ly(df_wide, x = ~xAxisVar, y = ~a, name='a', type='scatter', mode='lines+markers') %>% 
    add_trace(y = ~b, name = 'b', type='scatter', mode='lines+markers') %>% 
    add_trace(y = ~c, name = 'c', type='scatter', mode='lines+markers', connectgaps = TRUE) %>% 
layout(
    updatemenus = list(
    list(
     type = "buttons", 
     x = -0.1, 
     y = 0.7, 
     label = 'Category', 
     buttons = list(
     list(method = "restyle", 
      args = list('visible', c(TRUE, FALSE, FALSE)), 
      label = "a"), 
     list(method = "restyle", 
      args = list('visible', c(FALSE, TRUE, FALSE)), 
      label = "b"), 
     list(method = "restyle", 
      args = list('visible', c(FALSE, FALSE, TRUE)), 
      label = "c") 
    ) 
    ))) 
+0

看起來不錯,謝謝。 –