Как преодолеть перекрывающиеся точки без дрожания или прозрачности в ggplot2?

StackOverflow https://stackoverflow.com/questions/2502485

  •  21-09-2019
  •  | 
  •  

Вопрос

Я начинаю использовать ggplot2.У меня есть несколько небольших n (около 30 или около того) детализированных данных с большим количеством перекрытий.Ни джиттер, ни альфа (прозрачность) не подходят.Вместо этого лучше всего подойдет ленточная диаграмма со стеком и смещением, но я не знаю, как это сделать в ggplot2.Вы знаете?

Чтобы увидеть, каким должен быть конечный результат, нажмите на это графика.

Вот сценарий, который я использовал несколько лет назад.

stripchart(SystData$DayTo1Syst~SystData$strain,vertical=TRUE,method="stack",pch=19,offset=.3,xlab="Strain",main="Rapidity of Systemic Disease Onset",ylab="Days post inoculation")
Это было полезно?

Решение

# your data
df <- data.frame(gp = rep(LETTERS[1:5], each =8), y = sample(1:4,40,replace=TRUE))
# calculate offsets
df <- ddply(df, .(y, gp), transform, offset = (1:length(gp)-1)/20)
qplot(gp, y, data=df) + stat_identity(aes(as.numeric(gp)+offset)) + theme_bw() 

Другие советы

Вы можете использовать position_dodge.

df <- data.frame(gp = rep(LETTERS[1:5], each =8), 
                 y = sample(1:4,40,replace=TRUE))
qplot(gp,y,data=df,order=y,position=position_dodge(width=0.5))

альтернативный текст http://img100.imageshack.us/img100/8760/dodgel.png

Вы хотите использовать geom_dotplot из ggplot2

вы, вероятно, захотите использовать:

ggplot(insert your arguments here) + geom_dotplot(binaxis = "y", stackdir = "center")

Надеюсь это поможет.Результаты будут выглядеть очень чистыми, и я думаю, это именно то, что вам нужно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top