2016-10-12 3 views
0

누군가가 나를 도와 줄 수 있으면이 문제로 며칠 동안 고민하고 있습니다. 나는 "높은", "중간"또는 "낮은"값을 가진 열 '결과'가있는 테이블 데이터를 가지고 있습니다. 음모를 사용하여 파이 차트를 만들려고합니다. 데이터 세트의 고, 중 및 저 수를 계산하고 각 카테고리에 색상을 지정하려고했습니다. 아래는 제 코드입니다. cols1과 cols2를 내 마커 및 다른 여러 가지 방법으로 시도했지만 아무 것도 작동하지 않는 것 같습니다. 이것은 역동적 인 테이블이므로 High 나 No Medium이없는 경우가있을 수 있으므로 마커로 목록 (c ("토마토", "ornage", "olivedrab")을 사용할 수 없습니다. 색이. 결과 범주에R 원형 원형 차트 맞춤 색상

tab <- count(data, results) 

    tab <- transform(tab, 
        results_ord = factor(
        results , 
        levels = c('High', 'Medium', 'Low'), 
        ordered = TRUE 
        )) 
    cols1 <- 
    c(
     High = "olivedrab", 
     Medium = "orange", 
     Low = "tomato" 
    ) 
    cols2 <- 
    c(ifelse(
     tab$results_ord == "High", 
     "olivedrab", 
     ifelse(
     tab$results_ord == "Medium", 
     "orange", 
     "tomato" 
    ) 
    )) 


    plot_ly(
    tab, 
    labels = results_ord, 
    values = n, 
    marker = list(cols2), 
    type = "pie" 
) %>% 
    layout(title = "Results") 

    thanks, 

마노 아그라 왈

이 구문은 plotly의 4.x의 버전입니다
+0

나는이 시도하지만 차트를하지 않았다 다시 cols1 <- C ( "olivedrab" "오렌지", "토마토" ) plot_ly ( 탭, 라벨 = results_ord, 값 = N = 마커 (색상 = results_ord, 색상 = 목록 (cols1)), 유형 = "파이" ) %> % 레이아웃 (제목 = "결과") 마커 당신은 나에게 올바른 구문을 알려 주시기 바랍니다 수 있습니다 ? C ( '높은 공연'= "olivedrab - 색상은이 COLS <처럼 뭔가를 할 수 ggplot category.In에 연결되지 않기 때문에 –

답변

0

를 연결 할 수있다,하지만 당신은 오래된적인 버전에 대해 적절하게 조정할 수 있습니다. 여기에 수동을 얻을 수있는 방법이다 색상을 표시합니다 :

당신은 FO 원하는 색상을 얻기 위해 요소 순서를 조정할 수 있습니다
df <- count(mtcars, am) 
plot_ly(df, values = ~n, labels = ~factor(am), colors = c('#FF7F0E', '#1F77B4'), type = 'pie') 

r 원하는 값.

+0

Gopala, 하나 또는 그 이상의 범주 색 구성표를 제거하자마자 따라서 고장 난다고 ", Underperformers ="orange ", 'No Sales'="steelblue " ) 우리가 할 수있는 비슷한 점이 있나요? –

+0

내가 알고있는 것은 아닙니다. 하지만 조건부로 '색상'벡터를 조건부로 생성하여 변수에 저장 한 다음 피드에 넣을 수 있습니다. – Gopala