0
試圖根據因子列對堆積的直方圖着色;所有酒吧都有「綠色」屋頂?我希望酒吧的顏色和酒吧本身一樣。下圖清楚地顯示了什麼是錯的。所有酒吧的頂部都有一條「綠色」水平線?ggplot geom_histogram color by factor not working properly
這裏是一個僞數據組:
BodyLength <- rnorm(100, mean = 50, sd = 3)
vector <- c("80","10","5","5")
colors <- c("black","blue","red","green")
color <- rep(colors,vector)
data <- data.frame(BodyLength,color)
而且節目,我用來生成如下情節:
plot <- ggplot(data = data, aes(x=data$BodyLength, color = factor(data$color), fill=I("transparent")))
plot <- plot + geom_histogram()
plot <- plot + scale_colour_manual(values = c("Black","blue","red","green"))
此外,由於數據列本身包含的顏色名稱,我不需要在scale_color_manual中再次指定它們? ggplot可以從數據本身識別它們嗎?但我現在真的很想幫助解決第一個問題......謝謝。
plot + geom_histogram(position =「identity」)似乎有效;除了現在所有的彩色疊層都位於它們各自倉的底部,即黑條之下。我希望他們在上面。感謝您嘗試David ......如果我找出問題,我會更新。 – Mansi
對於任何直方圖,如果您使用不同顏色的輪廓和透明元素覆蓋了元素,則圖形過程必須決定如何進行疊加。例如,如果藍色組中有一個「0」,則R在Y = 0處繪製藍色的水平線。如果藍色框中有「1」,則繪製高度爲Y的矩形= 1,除非它被下一個組覆蓋,否則它將保持不變。 – David
在我的這個版本中,有許多黑色條,因爲黑色是最多的。然而,黑色是疊加層中的底部直方圖層,綠色是最頂層;這是因爲factor()函數。這就是爲什麼我的版本中的Y = 0行是綠色的。彩色堆棧位於各自倉的底部,因爲如果對於任意倉,如果黑色= 5,紅色= 2,則會出現兩條水平線。我很難想象如何最佳的透明直方圖會出現。 – David