Я пытаюсь создать единый график или прямоугольник в R с цветами на основе некоторых группировок и порядка на основе некоторых значений. Смотрите пример ниже:Участок одиночного бара или прямоугольника с цветами на основе группы
Для тех, кто заинтересован в более подробно, это то, что я пытаюсь повторить: http://www.broadinstitute.org/cmap/help_topics_linkified.jsp (много примеров этого участка в нижней части страницы)
EDIT (на основе комментариев): Значения оси 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)
Ваш вопрос неясно, хотите ли вы 4 региона (по одному для каждого уникального значения A, B, C, D) или по одному региону для каждой строки. – joran
используйте 'fill = group' вместо' color = group' и 'geom_bar (stat =" identity ")' вместо 'geom_point()' – scoa
@joran Я хочу по существу строки с цветами на основе их ранга/значения. Таким образом, регионы не задаются, а изменяются в соответствии с данными. – harkmug