2013-05-24 2 views
1

У меня есть данные из двух образцов, и я хочу, чтобы построить частотное распределение участка в R. Я ссылка сделана в Excel:R: странно оси у в частоте/плотность участка (ggplot2)

what in want to get in R (obtained with excel)

Я загрузил в R данные (HistSerp). Это 136 obs. of 2 variables.

summary(HistSerp) 
V1    V2  
Min. :0.000 Min. :0.0000 
1st Qu.:0.000 1st Qu.:0.3752 
Median :0.000 Median :1.2845 
Mean :0.055 Mean :1.2144 
3rd Qu.:0.082 3rd Qu.:1.9952 
Max. :1.082 Max. :2.9800 

class(HistSerp$V1) 
"numeric" 
class(HistSerp$V2) 
"numeric" 

Если я HistSerp.m <- melt(HistSerp) и ggplot(HistSerp.m) + geom_freqpoly(aes(x = value, y = ..density.., colour = variable)) сюжет выглядит: enter image description here

Я не знаю, почему пролет у оси, что значения, и я не уверен, если это только маркировка оси у проблема, сам сюжет кажется другим. Я также пробовал geom_density(), hist(HistSerp$V1, freq=FALSE) и т. Д., Но я не могу получить его так, как я ожидаю, я получил то же, что и раньше. Я думаю, что что-то не так с моими данными, но я не могу понять, что это. Любая помощь будет оценена.

С благодарностью

Ps. следует ли копировать данные (136x2)?

Обновление: данные. К сожалению, если есть лучший способ, чтобы скопировать его ...

0.144 2.024 
0.082 2.548 
0.082 1.943 
0.000 2.599 
0.000 2.233 
0.000 2.342 
0.082 1.655 
0.082 2.200 
0.000 2.261 
0.000 2.408 
0.000 2.127 
0.000 2.053 
0.000 1.929 
0.000 1.413 
0.000 2.400 
0.000 2.777 
0.000 2.685 
0.000 1.436 
0.000 1.573 
0.000 2.504 
0.000 1.533 
0.000 1.434 
0.000 1.421 
0.000 2.534 
0.082 1.728 
0.000 1.984 
0.082 1.287 
0.000 2.324 
0.164 2.405 
0.279 1.989 
0.082 2.729 
0.144 2.046 
0.226 2.496 
0.000 2.980 
0.000 2.634 
0.000 1.792 
0.000 1.571 
0.000 0.612 
0.000 0.884 
0.000 0.449 
0.000 2.318 
0.082 0.449 
0.000 0.449 
0.000 0.563 
0.082 0.919 
0.000 0.617 
0.082 1.297 
0.144 0.719 
0.000 1.897 
0.000 1.338 
0.000 0.337 
0.000 1.555 
0.000 0.273 
0.291 0.656 
0.000 0.273 
0.082 0.388 
0.082 1.911 
0.082 0.852 
0.000 1.580 
0.000 1.450 
0.000 1.209 
0.000 2.049 
0.082 2.694 
0.082 1.089 
0.246 2.643 
0.000 2.393 
0.000 1.702 
0.000 2.595 
0.000 1.432 
0.000 2.094 
0.000 1.526 
0.082 1.775 
0.000 0.273 
0.000 1.405 
0.000 2.014 
0.000 0.543 
0.000 0.586 
0.000 1.224 
0.000 0.719 
0.164 0.201 
0.000 0.388 
0.082 0.232 
0.000 0.116 
0.000 0.116 
0.082 1.395 
0.000 0.116 
0.000 0.232 
0.082 0.844 
0.000 1.153 
0.082 0.000 
0.667 0.000 
0.000 1.535 
0.000 2.687 
0.000 0.922 
0.226 0.337 
0.197 0.999 
1.082 1.373 
0.082 0.396 
0.082 0.116 
0.000 1.667 
0.000 0.731 
0.000 0.544 
0.082 2.072 
0.000 2.262 
0.164 2.111 
0.082 1.675 
0.000 0.116 
0.000 0.232 
0.082 0.116 
0.000 1.004 
0.000 0.116 
0.164 0.116 
0.082 0.699 
0.000 0.000 
0.000 0.273 
0.082 0.000 
0.000 0.388 
0.082 0.000 
0.000 0.116 
0.000 0.273 
0.000 0.000 
0.000 0.649 
0.164 0.000 
0.082 0.000 
0.082 0.000 
0.000 0.000 
0.082 0.000 
0.144 1.282 
0.000 1.772 
0.000 0.116 
0.082 0.000 
0.000 1.416 
0.000 0.563 
0.082 0.510 
0.000 0.316 
0.164 1.124 
+0

Да, добавление данных поможет. Возможно, проблема там где-то там - и в любом случае это позволит отслеживать ваши шаги и определять, где что-то пойдет не так. – thunk

+0

Пожалуйста, используйте выходные данные 'dput (HistSerp)' для совместного использования данных. – Roland

+0

Какая ширина бункера вы использовали в excel? – Roland

ответ

2

У вас есть несколько вариантов:

geom_freqpoly(aes(y = ..count../sum(..count..))) 

, который, вероятно, что вы хотите. Тогда есть:

geom_freqpoly(aes(y = ..ndensity..)) 

, который является оценкой плотности, но масштабируется в диапазоне от 0 до 1. (т.е. он будет всегда в диапазоне от 0 до 1). И, наконец, ассоциированные:

geom_freqpoly(aes(y = ..ncount..)) 

, который аналогичен, но для подсчета. Вы можете прочитать о вариантах в ?stat_bin.

+0

Отлично. Используя ваш первый вариант сделал то, что я ожидал :) Спасибо! Это был мини-мастер-класс;) – PGreen

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