2016-05-17 36 views
0

プロット散布図でカラーバーのタイトルを変更しようとしています。Plotlyカラーバーのタイトルを変更

ドキュメントを見ると、これは簡単ではないようです。しかし、colorbar = list(title = "Typing Rate")をメインのplotly()コードに挿入するだけでなく、layout()に以下のようにパイプしてみました。

このタイトルをカスタマイズするにはどうすればよいですか?

library(dplyr) 
library(shiny) 
library(plotly) 

df <- as.data.frame(list("UserID"=c(1,1,1,1,2,2,2,2), 
          "Category"=c('A','A','B','B','A','A','B','B'), 
          "Rate"=c(2,3,5,6,8,6,7,1), 
          "x"=c(1,3,5,7,2,4,6,8), 
          "y"=c(1,3,5,7,2,4,6,8) 
        )) 

ui <- (fluidPage(
    sidebarLayout(
    sidebarPanel(
     selectInput("userInput","Select User", sort(unique(df$UserID)), 
        selected=1), 
     checkboxGroupInput("CategoryInput", "Select Category", sort(unique(df$Category)), 
         selected=c('A','B')) 
    ), 

    mainPanel(
     plotlyOutput("mainPlot")#, 
    ) 
) 
)) 

server <- function(input, output, session) { 

    # filter for both user and category 
    filteredFull <- reactive({ 
     df %>% 
     filter(
      UserID == input$userInput, 
      Category %in% input$CategoryInput 
     ) 
    }) 

    output$mainPlot <- renderPlotly({ 
     plot_ly(data=filteredFull(), x=x, y=y, 
         color=Rate, size=Rate, 
         mode='markers') %>% 
     layout(
     colorbar = list(title = "Typing Rate") 
    ) 
    }) 
} 

shinyApp(ui, server) 

答えて

2

これを試してみてください:JavaScriptでそれを探しながら

output$mainPlot <- renderPlotly({  
    m <- list(
    colorbar = list(title = "Typing Rate") 
) 
     plot_ly(data=filteredFull(), x=x, y=y, 
         color=Rate, size=Rate, 
         mode="markers", marker=m) 
    }) 
+0

うわー、そうです!どんな考え?仮に、 'plot_ly()'に置くのと同じことが必要なようです。 –

0

は、私がここで終わりました。私はOPがRでそれを求めていることを知っている。私はJSで同じことをしたい人のためにこの答えを追加しています。

var plotData8kW = [{ 
     z: data8kW, 
     hoverinfo:"z", 
     colorbar:{ 
      // len: 0.35, //Change size of bar 
      title: 'Speed(RPM)<br\><br\>', //set title 
      titleside:'top', //set postion 
      //tickvals:[0,50,100], 
      titlefont: {color: 'blue'} //title font color 
      }, 
     type: 'heatmap', 
     colorscale: enhancedScale, 
     }, 
];