我正在尝试使用基于某些分组的颜色和基于某些值的顺序在R中创建单个条形或矩形图。见下面的例子:
对于那些对细节感兴趣的人,这就是我想要复制的内容:http://www.broadinstitute.org/cmap/help_topics_linkified.jsp(页面底部有很多这个情节的例子)
编辑(基于评论):y轴值是随得分列而变化的等级。颜色表示分组,其中正分数值为绿色,负数为红色,黑色线为一组“选定”行。这是不堆积条形图。 y轴上的值(无论是等级还是得分)不是累积的,“选定”(黑色)组的组区域可以分布在其他三个组区域中(如下面的示例数据所示)。
示例:
structure(list(group = structure(c(1L, 1L, 4L, 1L, 1L, 3L, 3L,
4L, 3L, 2L, 4L, 2L, 2L), .Label = c("positive", "negative", "null",
"selected"), class = "factor"), rank = c(1, 2, 3, 4, 5, 7.5,
7.5, 7.5, 7.5, 10, 11, 12, 13), xaxis = c(1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1), score = c(0.85, 0.7, 0.55, 0.4, 0.25, 0, 0,
0, 0, -0.5, -0.65, -0.8, -0.95)), .Names = c("group", "rank",
"xaxis", "score"), row.names = c(NA, -13L), class = "data.frame")
group rank xaxis score
1 positive 1.0 1 0.85
2 positive 2.0 1 0.70
3 selected 3.0 1 0.55
4 positive 4.0 1 0.40
5 positive 5.0 1 0.25
6 null 7.5 1 0.00
7 null 7.5 1 0.00
8 selected 7.5 1 0.00
9 null 7.5 1 0.00
10 negative 10.0 1 -0.50
11 selected 11.0 1 -0.65
12 negative 12.0 1 -0.80
13 negative 13.0 1 -0.95
我尝试了以下但我正在寻找一个条形或矩形,而不是点。
ggplot(df, aes(xaxis,rank,colour=group)) +
geom_point(size=3) +
scale_colour_manual(values=c("positive"="green", "negative"="red", "null"="grey", "selected"="black")) +
theme_bw() + scale_y_reverse() + scale_x_discrete(breaks=NULL)
堆叠geom_bar()
和geom_rect()
似乎无法使用连续的y
值。
任何帮助将不胜感激。谢谢!
UPDATE (使用@ bjoseph的解决方案复制上面链接中显示的确切图表)
df$size = as.factor(1)
df$height = 1
ggplot(df, aes(1,x=size,y=height,fill=group,group=rank)) +
geom_bar(stat='identity') + science_theme +
scale_fill_manual(values=c("positive"="green", "negative"="red", "null"="grey", "selected"="black")) + theme_bw() +
scale_y_reverse(breaks=NULL) + scale_x_discrete(breaks=NULL)
答案 0 :(得分:1)
这有效
df = structure(list(group = structure(c(1L, 1L, 4L, 1L, 1L, 3L, 3L,
4L, 3L, 2L, 4L, 2L, 2L), .Label = c("A", "B", "C", "D"), class = "factor"),
value = 1:13), .Names = c("group", "value"), row.names = c(NA,
-13L), class = "data.frame")
df$size=as.factor(1)
df$height=1
ggplot(df, aes(1,x=size,y=height,fill=group,group=value)) +
geom_bar(stat='identity',color="black") +
theme_bw()
它产生了附图。
color="black"
内的geom_bar
命令会在您的群组周围生成黑色轮廓。如果需要,您也可以抑制或手动标记y轴。