2013-07-23 3 views
0

Возможно ли построить схему данных с использованием двух условий?Как совместить два условия, чтобы сделать сюжет?

У меня есть этот dataframe:

tdat=structure(list(X = structure(c(1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 
2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L), class = "factor", .Label = c("AS", 
"Dup", "MCH")), variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("bot", 
"top", "all"), class = "factor"), value = c(1.009936818, 1.414634463, 
0.778023226, 1.046037598, 2.370167409, 0.714638976, 0.241778577, 
0.684398769, 0.181664019, 0.44099306, 1.212003504, 0.237309508, 
1.257632594, 2.329136359, 1.037219886, 1.495702786, 2.990687546, 
1.069762508)), .Names = c("X", "variable", "value"), row.names = c(NA, 
-18L), class = "data.frame") 

> tdat 
    X variable  value 
1 AS  bot 1.0099368 
2 MCH  bot 1.4146345 
3 Dup  bot 0.7780232 
4 AS  bot 1.0460376 
5 MCH  bot 2.3701674 
6 Dup  bot 0.7146390 
7 AS  top 0.2417786 
8 MCH  top 0.6843988 
9 Dup  top 0.1816640 
10 AS  top 0.4409931 
11 MCH  top 1.2120035 
12 Dup  top 0.2373095 
13 AS  all 1.2576326 
14 MCH  all 2.3291364 
15 Dup  all 1.0372199 
16 AS  all 1.4957028 
17 MCH  all 2.9906875 
18 Dup  all 1.0697625 

Я мог бы использовать

qplot(x=variable, y=value,data=tdat). 

Однако мне нужно сделать подгруппы, используя как "X" и "переменная". Поэтому мне нужны 9 групп: AS-bot, MCH-bot, Dup-bot, AS-top и т. Д. Итак, есть способ сказать qplot использовать y как y = значение + X?

+2

Трудно точно сказать, что вы хотите построить против того, что .. Может быть, это будет указывать правильное направление ?? не уверен, хотя: 'ggplot (tdat, aes (x = взаимодействие (X, переменная), y = значение)) + geom_line()'? – Arun

+0

@Arun brillant! возможно, вы можете добавить 'sep = '-'' и поместить его в качестве ответа! – agstudy

+0

@agstudy, да, я это сделаю. Но, может быть, после того, как ОП объяснит, является ли это то, что он ищет .. :) Я не хочу писать ответ и прохожу через редактирование. У меня есть документ, который нужно читать на завтра: P .. – Arun

ответ

2

Как уже упоминалось в комментарии, вы можете использовать interaction. здесь я использую его дважды для 2 aes. Чтобы получить лучший заголовок легенды, я использую scale_color_discrete.

ggplot(tdat, aes(x=interaction(X,variable,drop=TRUE,sep='-'), y=value, 
       color=X)) + 
       geom_point() + 
       scale_color_discrete(name='interaction levels') 

enter image description here

+0

ОК спасибо за ваш ответ, но для окраски я хотел бы, чтобы все АС имели один и тот же цвет, Dup тоже и MCH тоже. Поскольку мы используем функцию взаимодействия(), я не уверен, что это возможно. – Wicelo

+0

@Wicelo Я редактирую свой ответ. – agstudy

Смежные вопросы