2014-12-11 3 views
1
status = sample(c(0, 1), 500, replace = TRUE) 
value = rnorm(500) 

plot(value) 
smoothScatter(value) 

Я пытаюсь сделать диаграмму рассеяния значения, но если бы я просто построить его, данные все слипаются вместе, и это не очень презентабельно. Я пробовал smoothScatter(), что делает график немного более приятным, но мне интересно, есть ли способ цветового кода для значений, основанных на соответствующем статусе?R: Как визуализировать большой и слипаются график рассеяния

Я пытаюсь посмотреть, есть ли связь между статусом и значением. Какой еще способ представить данные красиво? Я пробовал boxplot, но мне интересно, как я могу сделать плагин smoothScatter() лучше или если есть другие способы визуализации.

ответ

1

Я предполагаю, что вы хотели написать plot(status, value) в вашем примере? Несмотря на это, там не будет много разница используя эти данные, но вы должны получить представление о вещах, может быть, смотреть на следующие примеры ...

Вы смотрели в jitter?

Некоторые основы:

plot(jitter(status), value)

Simple Jitter

или, возможно, plot(jitter(status, 0.5), value)

Tighter Jitter Plot

навороченные с пакетом ggplot2 вы могли бы сделать:

library(ggplot2) 
df <- data.frame(value, status) 
ggplot(data=df, aes(jitter(status, 0.10), value)) + 
    geom_point(alpha = 0.5) 

ggplot 01

или это ...

ggplot(data=df, aes(factor(status), value)) + 
    geom_violin() 

ggplot 02

или ...

ggplot(data=df, aes(x=status, y=value)) + 
    geom_density2d() + 
    scale_x_continuous(limits=c(-1,2)) 

ggplot 03

или ...

ggplot(data=df, aes(x=status, y=value)) + 
    geom_density2d() + 
    stat_density2d(geom="tile", aes(fill = ..density..), contour=FALSE) + 
    scale_x_continuous(limits=c(-1,2)) 

ggplot 04

или даже это ..

ggplot(data=df, aes(fill=factor(status), value)) + 
    geom_density(alpha=0.2) 

ggplot 05

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