2016-06-13 13 views
-6

Im пытается построить по данным Vocabulary.txt образование по отношению к лексике.R-проект Графический график

Это код, который я использовал

plot(jitter(education)~jitter(vocabulary),pch=23,xlim=c(0,30),ylim=c(0,30)) 

мой графический выглядит следующим образом enter image description here

Это выглядит правильно это не распространяется, может быть, кто-то может объяснить мне, что я сделал не так и дальше, что именно команда jitter?

+4

Что «не выглядит правильно» об этом? – gung

+0

Я не могу что-либо увидеть из этих данных. Интересно, если theres лучший способ построить его. Я читал? Jitter, но я не понимаю. –

+1

Что вы хотите увидеть? Здесь недостаточно, чтобы дать ответ. – gung

ответ

1

Я думаю, что два выхода ниже - готовые к использованию.

Первый использует базу R и jitter, используемый для добавления некоторого шума к данным, чтобы точки с одинаковыми координатами отображались на разных позициях. Это хороший подход в этом случае (при условии, что вы упоминаете дрожание, поскольку данные немного изменены). Если у вас много очков, вы можете комбинировать этот подход с некоторой прозрачностью.

Прежде всего, мы делаем пример reproducible:

df <- read.table("http://socserv.socsci.mcmaster.ca/jfox/Books/Applied-Regression-3E/datasets/Vocabulary.txt", header=TRUE) 
plot(jitter(education)~jitter(vocabulary), df, pch=20, col="#00000011", 
    xlim=range(vocabulary), ylim=range(education), 
    xlab="vocabulary", ylab="education") 

enter image description here

Но в основном, вы можете пытаться построить таблицу сопряженности, поэтому второй, используя `gpplot2:

library(ggplot2) 
# creates a contingency table 
tab.df <- as.data.frame(with(df, table(education, vocabulary))) 
ggplot(tab.df) + aes(x=vocabulary, y=education, fill=Freq, label=Freq) + 
# colored tiles and labels (0s are omitted) 
geom_tile() + geom_text(data=subset(tab.df, subset = Freq != 0), size=2) + 
# cosmectics 
scale_fill_gradient(low="white", high="red") + theme_linedraw() 

enter image description here

Процентное соотношение (как для плиток, так и для этикеток) может быть лучшим выбором, но ваш вопрос был неопределенным в отношении ваших целей. И если вы хотите, первый участок, но ала ggplot2 вы можете работать вокруг:

ggplot(df) + aes(x=education, y=vocabulary) + geom_jitter(alpha=0.05) 

enter image description here

+1

Я бы рекомендовал 'stat_sum()' ... –

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