GGPLOT2。如何在不同的图表上添加抖动

时间:2015-01-28 05:26:26

标签: r ggplot2 jitter

所以我有这个代码

  ggplot(data, aes(x=price, y=values)) + 
# add colourful lines
  geom_line(aes(group=group, color=group)) + 
# add two box plots
  geom_boxplot(data=df, aes(x="z_lnprice_new", y=x_lnprice_new)) + 
  geom_boxplot(data=df, aes(x='a_lnprice_new', y=b_lnprice_old)) +
# delete the legend
  theme(legend.position="none")

并有这个图表:

first

另外,我想在箱图上添加jitter。但如果我只是添加

  + geom_jitter(alpha=0.5, aes(price, values, color=group), 
            position = position_jitter(width = .2))

我在geom_line行上有抖动,但在箱图上没有。

second

这可能吗?


P.S。:数据Google Drive, .csv, 25 kB

的整个代码块
df <- data.frame(b_lnprice_old= sort(nb_firm_two_price[[175]]),
                 x_lnprice_new  = sort(nb_firm_two_price[[176]]))

data <- data.frame(group = factor(1:nrow(df)), 
                   price=c(rep('b_lnprice_old',nrow(df)), 
                         rep('x_lnprice_old',nrow(df))), 
                   values=c(df$b_lnprice_old,df$x_lnprice_new))

ggplot(data, aes(x=price, y=values)) + 
  geom_line(aes(group=group, color=group)) + 

  geom_boxplot(data=df, aes(x="z_lnprice_new", y=x_lnprice_new)) + 
  geom_boxplot(data=df, aes(x='a_lnprice_new', y=b_lnprice_old)) +
  theme(legend.position="none")

1 个答案:

答案 0 :(得分:0)

这是一个如何使用可重复的数据做我认为你想要的事情的例子。

# reproducible random data
set.seed(123)
obs <- 100
dat <- data.frame(group=1:obs, old_price=rnorm(obs, mean=10))
dat$new_price <- dat$old_price + rnorm(obs, mean=1)

# libraries
library(reshape2)
library(ggplot2)

# convert from wide to long
plot_dat <- melt(dat, id.var='group')

# plot
ggplot(plot_dat) + 
  # simple lines
  geom_line(aes(x=variable, y=value, group=group, color=group)) +

  # box plots and jitter points, with modified x value
  geom_boxplot(aes(x=paste0('hist_', variable), y=value)) +
  geom_jitter(aes(x=paste0('hist_', variable), y=value, color=group)) +

  # specify x value order
  scale_x_discrete(limits=c('hist_old_price', 'old_price', 'new_price',
                            'hist_new_price'))

结果:

enter image description here