2017-03-29 19 views
2

私はplotlyをRStudioで使用しています。積み重ねた棒グラフのホバー上に間違ったテキストをプロットする

plotlyは、チャートの積み重ねられた棒の上に最も上の棒を除いて、誤ったテキストを表示しています。

再現例

df <- data.frame(
    make = rep(c('Toyota', 'Honda', 'Volkswagen'),4), 
    segment =c(rep('high',3), rep('mid',3), rep('low',3), rep('entry',3)), 
    sales=c(25,35,75, 35,35,30, 45,25,10, 80, 80, 20) 
) 

df 
     make segment sales 
1  Toyota high 25 
2  Honda high 35 
3 Volkswagen high 75 
4  Toyota  mid 35 
5  Honda  mid 35 
6 Volkswagen  mid 30 
7  Toyota  low 45 
8  Honda  low 25 
9 Volkswagen  low 10 
10  Toyota entry 80 
11  Honda entry 80 
12 Volkswagen entry 20 

    p <- ggplot(df, aes(x=make, y=sales)) + 
    geom_bar(stat="identity", aes(fill=segment), position = "stack") 
    ggplotly(p) 

私はRStudioで取得することは下の写真のようになります。あなたは、トップスタックバーを除いて見れるように、他のすべてはホバー上のホバー

誤ったテキストに間違ったテキスト与えている - dfのデータに基づいてをsalesの正しい値は20ある - 代わりに、それは135を示しています - データ - ホバー12 Volkswagen entry 20 enter image description here

正しいテキスト - のみのスタックの一番上のバーを観察しました。 enter image description here

> packageVersion('ggplot2') 
[1] ‘2.2.1’ 
> packageVersion('plotly') 
[1] ‘4.5.6’ 
> 
+0

正しいstaですck値。 – MLavoie

+0

@MLavoie - それは '20'を表示するはずですが、代わりに' 135'を表示しています - これはどうですか? – user3206440

+0

スタック!最上位から始めて最初の3つを追加するだけです。 – MLavoie

答えて

1

多分あなたがそれを追加してみてください:

p <- ggplot(df, aes(x=make, y=sales, fill=segment, text=paste("sales original value", sales))) + geom_bar(stat="identity") 
ggplotly(p) 

とあなただけの販売を表示したい場合は、あなたも使用することができます。

ggplotly(p, tooltip = c("text")) 

シャイニー使用:

library(shiny) 
ui <- fluidPage(
    plotlyOutput("plot") 
) 

server <- function(input, output) { 
    output$plot <- renderPlotly({ 
p <- ggplot(df, aes(x=make, y=sales, fill=segment, text=paste("sales original value:", sales))) + geom_bar(stat="identity") 
ggplotly(p, tooltip = c("text")) 
    }) 
} 

shinyApp(ui, server) 
+0

素晴らしい!あなたは 'renderPlotly'で' tooltip'をどのように使いますか? – user3206440

関連する問題