displaying stat_summary accurately on violin plots

爷,独闯天下 提交于 2020-01-05 09:28:03

问题


I just started using ggplot2 on R and have a violin plot question.

I have a data set that can be accessed here: data.

The data comes from a study of making estimations. The variables of interest are the question.no (questions), condition, estimate.no (tr.est1 or tr.est2) and estimate.

The code below makes the plot look almost the way I want it to look at least for one question, yet the median dots generated by stat_summary() are displayed in between the "violins."

 v.data<-read.csv("data.csv")

 # loop through each question number
 d_ply(v.data, c("question.no"), function(d.plot){
 q.no <- v.data$question.no

 plot.q <- ggplot(d.plot,aes(condition, estimate, fill=estimate.no)) + 
   geom_violin() + 
   stat_summary(fun.y="median", geom="point") + 
   scale_y_continuous('Change Scores') + 
   scale_x_discrete("Conditions")

ggsave(filename=paste(q.no,".png",sep=""))

})

My Question: How can I make the median dots display correctly on the "violins" rather than in between them?

I searched the previous questions asked on ggplot2 on this site and looked at the ggplot2 documentation as well as other R forums but have not been able to find anything relevant.

I would appreciate any comments and suggestions as to how I can fix it. Also, if the questions I ask are already answered somewhere else, I would appreciate the links to the threads,too. Many thanks in advance.


回答1:


stat_summary is limited to the variable that determines your x-axis. One way to convey the information you want would be to replace condition in your call to aes with interaction(condition, estimate.no).




回答2:


Plotluck is a library based on ggplot2 that aims at automating the choice of plot type based on characteristics of 1-3 variables. For your data set, the command plotluck(v.data, condition, estimate, question.no) generates the following plot:

Note that the library chose to scale y logarithmically. You can override this behavior with plotluck(v.data,condition,estimate,question.no,opts=plotluck.options(trans.log.thresh=1E20)) but it doesn't display well, and the median points look like they are all on the zero line.



来源:https://stackoverflow.com/questions/13068135/displaying-stat-summary-accurately-on-violin-plots

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!