ggplotバープロットのバーに特定の色を割り当てる必要があります。デフォルトでは、以下のggplot棒グラフが表示されます。ここで、私が望んでいたのは、最も高い値のバーに別の色(たとえば赤)を割り当てることです。64 items
これは、の下のバーtype D
の場合ですnames X and Z
。また、下16 items
のバーの赤色も。現在、図の下に示すRggplot2コードを使用しています。これを手に入れるのを手伝ってください。type C
name Y
データ:
data <- structure(list(type = structure(c(1L, 2L, 3L, 4L, 2L, 3L, 4L,
3L, 4L, 4L, 1L, 2L, 3L, 4L, 2L, 3L, 4L, 3L, 4L, 4L, 1L, 2L, 3L,
4L, 2L, 3L, 4L, 3L, 4L, 4L), .Label = c("A", "B", "C", "D"), class = "factor"),
items = c(16L, 16L, 16L, 16L, 32L, 32L, 32L, 48L, 48L, 64L,
16L, 16L, 16L, 16L, 32L, 32L, 32L, 48L, 48L, 64L, 16L, 16L,
16L, 16L, 32L, 32L, 32L, 48L, 48L, 64L), name = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("X",
"Y", "Z"), class = "factor"), value = c(6.3, 7.2, 7.1, 7,
10, 10.9, 11, 11.6, 11.5, 12, 8.9, 10.6, 11.5, 7.9, 12.6,
13.5, 12.4, 13, 14, 15.4, 4.8, 7, 7.2, 6.1, 4.1, 4.4, 4.2,
3.2, 2.7, 1.6)), .Names = c("type", "items", "name", "value"
), class = "data.frame", row.names = c(NA, -30L))
data$name = factor(data$name, levels(data$name)[c(1,3,2)])
p1 = ggplot(data, aes(type, value, fill=type, group=items, facets=items)) + geom_bar(stat="identity")
p1 = p1 + scale_fill_manual(values = rep("grey60",4), labels = c("type-A", "type-B", "type-C", "type-D"))
p1 = p1 + facet_grid(name~items,scales="free", space="free") + opts(strip.text.y = theme_text(size=14, face="bold"))
p1 = p1 + opts(legend.position="top", legend.text=theme_text(size=15), legend.title=theme_text(size=0,colour="white"), legend.key = theme_rect(colour = NA))
アップデート
mneiによって提供されたコードは、私が必要とするものをほぼ提供していますが、図に示されている凡例が得られません。どうすれば入手できるのか教えてください。