2015-08-26 5 views
0

Я новичок в R, и я пытаюсь создать простой график рассеяния с несколькими сплайнами в них.Несколько сплайнов в одном графике

У меня есть таблица, которая выглядит, как показано ниже,

chr  window number percent pie 
chr1 500  15  0.502 na 
chr1 1000 21  0.641 0.019704955 
chr1 1500 21  0.621 0.016777844 
chr1 2000 22  0.534 na 
chr1 2500 35  0.698 0.028712731 
chr2 4500 2  0.371 na  
chr2 5000 3  0.342 na  
chr4 5500 1  0.068 na  
chr4 6000 0  0.000 na  
chr4 6500 0  0.000 na  
chr5 7000 2  0.079 na  
chr5 7500 12  0.440 na 

То, что я хотел бы сделать, по существу, построить простой х, у разброса этого кадра данных и добавить сплайн для каждого уровня в колонке 1 на тот же сюжет. Теперь я могу генерировать диаграммы рассеяния, как это,

ggplot(Y, aes(x=percent, y=pie))+ geom_point(size = 1) + 
theme(axis.text.y=element_text(size=8)) 

, но все примеры, которые я видел до сих пор, о том, один сплайн на участок. Мой вопрос в том, как я могу разделить свой фрейм данных на основе столбца1 и генерировать сплайн для каждого подмножества и, наконец, все сплайны в том же участке, что и диаграмма рассеяния?

Я предпочитаю держать это внутри ggplot, но если у вас есть решения за пределами ggplot, пожалуйста, дайте мне знать об этом.

Любая помощь будет оценена по достоинству. Дайте мне знать, если вам нужна дополнительная информация с моей стороны.

Приветствия,

+1

Выполняет ли 'geom_smooth' то, что вы хотите, случайно? (Если нет, подумайте над тем, как будет выглядеть ваш желаемый результат, особенно по сравнению с теми «примерами, которые вы видели до сих пор»). Конечно, вы можете добавить несколько уровней «geom_ *». – maj

+1

Вы можете попробовать добавить 'color = chr' в' aes() ', а затем используйте' stat_smooth() 'для вашего сплайна, как показано в его документации (http://docs.ggplot2.org/0.9.3/stat_smooth.html) – hugo

+0

@ maj- Я буду более сложным здесь, поэтому, если вы посмотрите на таблицу выше, в столбце 1 есть пять уровней (chr1, chr2, ... chr5). Моим конечным результатом будет одна диаграмма рассеяния, генерируемая из всех значений в этой таблице с 5 сплайнами (которые соответствуют слою в столбце 1). Является ли это ясным? – user2960593

ответ

1

Я добавил некоторые данные для переменной Y$pie<-rnorm(12), поскольку существует только три значения.

ggplot(Y, aes(x=percent, y=pie,color=chr))+ geom_point(size = 3) + 
     theme(axis.text.y=element_text(size=8)) + 
     geom_smooth(method = "lm", se = FALSE, size=1,show_guide=FALSE) 

enter image description here

ли, что ближе к тому, что вы спрашиваете?

+0

это близко к тому, что мне нужно, но когда я пробовал это, у меня были точки с разными цветами, как и следовало ожидать, но только один сплайн кривая? Я думал, что, возможно, линии перекрываются, поэтому я тоже пробовал другие методы, но никто из них не работает :(Любые указатели? – user2960593

+0

Вы используете больше данных для переменной 'pie'? Сейчас у нее есть только данные для одного из уровней в 'chr' – user2673238

+0

Да, в таблице у меня есть более 17000 строк. Это голова из таблицы. – user2960593

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