2016-09-22 4 views
1

Rshiny의 일부 플롯에 문제가 있습니다. xAxis에 몇 가지 정보를 추가하고 싶습니다. 이 게시물은 거의 해결책을 찾았 기 때문에 편집되었지만 원본 스크립트를 원하면 제공 할 수 있습니다. 이 솔루션은 거의 작동되지만xAxis-r shiny에 정보 추가

enter image description here

나는 두 가지 문제에 직면 : 여기

library("shiny") 
library("highcharter") 

data(citytemp) 

ui <- fluidPage(
    h1("Highcharter EXAMPLE"), 
    fluidRow(
     column(width = 8, 
       highchartOutput("hcontainer",height = "500px") 
     ), 
     selectInput("option", label = "", width = "100%", 
        choices = c("Tokyo", "NY")) 
    ) 
) 

server <- function(input, output) { 
    data <- citytemp[,c("month","tokyo","new_york")] 
    data = data[data$month%in%c("Dec","Jan","Feb","Mar"),] 
    choose_Option <- reactive({ 
     sort_option <- input$option 
     if(sort_option=="Tokyo"){ 
      data = data[order(data$tokyo),] 
     } 
     else{ 
      data = data[order(data$new_york),] 
     } 
     return(data) 
    }) 
    output$hcontainer <- renderHighchart({ 
     data = choose_Option() 
     data = data[1:3,] 


     chart <- highchart() %>% 
      hc_chart(type = "bar") %>% 
      hc_title(text = "Monthly Average Temperature for main cities") %>% 
      hc_subtitle(text = "Source: WorldClimate.com") %>% 
      hc_xAxis(categories = data$month ,      
        labels=list(
         formatter=JS("function() { 
          return 'Tokyo' + '<br>' + this.categories +'   ' + '<br>'+'NY' + '</br>'; 
         }"))) %>% 
      hc_yAxis(title = list(text = "Temperature (C)")) 

     hc <- chart %>% hc_add_series(yAxis=0,name="Tokyo",data = data$tokyo,colorByPoint=TRUE) 
     hc <- hc %>% hc_add_series(yAxis=0,name="NY",data = data$new_york,colorByPoint=TRUE)  



     return(hc) 
    }) 
} 

shinyApp(ui = ui, server = server) 

내가하고 싶은 것을의 그림입니다 : 여기

는 reproductible 예입니다 1) R에게 카테고리 이름을 어떻게 요청할 수 있습니까? 나는 this.category가 작동하지 않는다고 생각한다. 2) 왜 긴 공백이 고려되지 않은 것일까?

설명이 필요하면 알려주세요. 는 당신에게, 대단히 감사합니다 최고의 , Madzia

+1

예상 차트의 이미지를 게시 할 수 있습니까? 축 레이블의 형식을 변경하거나 데이터 레이블 (점 레이블)을 사용할 수 있어야합니다. 모범적 인 데이터도 도움이 될 수 있습니다. –

+0

안녕하세요 케이퍼, 메시지를 보내 주셔서 감사합니다. 방금 게시물을 편집했습니다. 사진을 볼 수 있습니까? – Madzia

+1

충분히 가까울 수 있습니까? http://jsfiddle.net/7kk1ku9v/2/ 형식이있는 dataLabels를 사용하여 기본 y 값 대신 시리즈 이름을 표시합니다. –

답변

0

1) 2 월, 월 또는 월 이렇게 이미지의 경우 아래 데모)

2) 흰색 추가에 (현재의 카테고리를 얻을 수 this.key을 사용할 수 있습니다 공백은 무시됩니다. 스타일로 <span>에 넣을 수 있습니다. 충분한 공간이있는 경우 (만약 dataLabels 각 줄의 왼쪽에 그 (것)들이하는 ...

align: 'left', 
inside: true, 
x: -65 

:

또한,에 라벨 위치에 대한 이미지, 당신은 같은 옵션을 설정할 수 있습니다 "원" 오른쪽이 아님).

데모 : http://jsfiddle.net/7kk1ku9v/3/