2016-05-06 8 views
0

私はpiechartに色を付けたいと思います。私はscale_fill_manual(values = c("orange", "red","blue", "yellow", "green"))を使用しました。私はリンゴのために赤い色を、葡萄のためにオレンジ色と青色のためにオレンジ色を与えたいと思います。しかし、私の円グラフは違って見えます。 help(scale_fill_manual)から円グラフに特定の色を設定するにはどうすればいいですか?

d1 <- data.frame(
    labels = c("orange","apple","grape","pineapple","muskmelon"), 
    value = c(1632,29,1491,1991,29) 
) 
d1$pos <- cumsum(d1$value) - 0.5*d1$value 

p1 <-ggplot(d1, aes(x="", y = value, fill = labels)) 
p1 <- p1 + geom_bar(stat="identity", width=1) 
p1 <- p1 + ggtitle("fruits") 
p1 <- p1 + panel_border() 
p1 <- p1 + coord_polar(theta = "y") 
p1 <- p1 + xlab("") 
p1 <- p1 + ylab("") 
p1 <- p1 + geom_text(aes(x="", y=pos,label=labels), size=10) 
p1 <- p1 + scale_fill_manual(values = c("orange", "red","blue", "yellow", "green")) 
p1 <- p1 + theme(legend.position="none", 
    legend.title=element_blank(), 
    axis.line=element_blank(),axis.text.x=element_blank(), 
    axis.ticks=element_blank(), 
    plot.title = element_text(lineheight=3, face="bold", color="black", size=25)) 

答えて

1

、あなたはvaluesパラメータに名前のベクトルを渡すことができます。

p1 + scale_fill_manual(values = c("orange" = "orange", 
            "apple" = "red", 
            "grape" = "blue", 
            "pineapple" = "yellow", 
            "muskmelon" = "green")) 
+0

ありがとうございました! – aayan

1

これは少し遅すぎるかもしれません。問題のパッケージはggplot2であることを理解していますが、組み込みのpie関数を使ってどのように行うのかを共有するだけです。まず、私は、データフレーム内の各ラベルに対応する色の名前を割り当てます:

d1はこのようになりますよう
d1$colours <- c("orange", "red", "blue", "yellow", "green") 

pie機能を使用して

labels value pos colours 
    orange 1632 816.0 orange 
    apple 29 1646.5  red 
    grape 1491 2406.5 blue 
pineapple 1991 4147.5 yellow 
muskmelon 29 5157.5 green 

次に、プロット

pie(x = d1$value, labels = d1$labels, col = d1$colours) 

enter image description here

関連する問題