2016-10-12 23 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, 

Manojさんアグラワル

+0

私はこれを試してみましたが、バック cols1 <図表を取得していない - C( "olivedrab"、 "オレンジ"、 "トマト" ) plot_ly( タブ、 ラベル= results_ord、 値を= N、=マーカー マーカー(色= results_ord、色=リスト(cols1))、 タイプは= "パイ" )%>% レイアウト(タイトル= "結果") あなたは私の正しい構文を教えてくださいすることができます? –

答えて

0

この構文はplotlyの4.xのバージョンのですが、古いverisonのためにそれに応じて調整することができます。ここでは、マニュアルを得ることができる方法であります表示される色:

df <- count(mtcars, am) 
plot_ly(df, values = ~n, labels = ~factor(am), colors = c('#FF7F0E', '#1F77B4'), type = 'pie') 

希望の色を得るために因子の順序を調整することができます。fo r希望する値。

+0

Gopalaでは、カテゴリが1つ以上削除されると、色がカテゴリに関連付けられていないため、配色が変わってしまいます. cols < - c( 'High Performers' = "olivedrab "、 Underperformers =" orange "、 「販売していません」=「スチールブルー」 ) 私たちはプロットできるような類似点はありますか? –

+0

私は気づいていません。しかし、条件付きで色のベクトルを条件付きで生成し、それを変数に保存してからフィードすることができます。 – Gopala