如何将每个数据点用颜色填充到R中的相应主题?
我有一组数据,受试者在两种治疗条件(休息/SMR)下的两个时间点(前/后)进行测量 我有按时间/条件绘制的数据,还显示了每个单独的数据点如何将每个数据点用颜色填充到R中的相应主题?,r,ggplot2,data-visualization,figure,R,Ggplot2,Data Visualization,Figure,我有一组数据,受试者在两种治疗条件(休息/SMR)下的两个时间点(前/后)进行测量 我有按时间/条件绘制的数据,还显示了每个单独的数据点 SUBJ<-as.factor(c(rep('S01', 5), rep('S02', 5))) COND<-rep(c('BASELINE','REST_PRE', 'REST_POST', 'SMR_PRE', 'SMR_POST'), 2) VAR<-c(5.240, 5.774, 5.241, 5.260, 5.168, 5.110,
SUBJ<-as.factor(c(rep('S01', 5), rep('S02', 5)))
COND<-rep(c('BASELINE','REST_PRE', 'REST_POST', 'SMR_PRE', 'SMR_POST'), 2)
VAR<-c(5.240, 5.774, 5.241, 5.260, 5.168, 5.110, 4.996, 5.006, 5.176, 5.038)
example<-data.frame(SUBJ, COND, VAR)
ggplot(subset(example, COND !='BASELINE')) + geom_boxplot(aes(x= COND, y=VAR,
group = COND, color = COND), linetype = c(1, 2, 1, 2)) +
scale_color_manual(values = c('black','black', 'gray40', 'gray40')) +
geom_dotplot(aes(x= COND, y=VAR, group = COND, color = COND), binaxis = 'y',
stackdir = 'center', binwidth = 0.08, dotsize = 0.5) + labs(x = NULL, y = 'm',
size = 10) + theme(plot.title=element_text(hjust = 0.5,size = 12)) + theme_bw()
+ theme(legend.position = 'none')
sub正如我在评论中提到的那样-我认为更好的选择是geom_point
,以你的情况来说
我觉得你做的一切都对。但是忽略了为geom_dotplot
设置颜色美学只会改变一个微小的笔划,由于填充而不可见。必须同时设置填充和颜色:
编辑
为两个不同的变量设置相同的美学(颜色)是非常、非常、非常棘手的,几乎没有必要。使用fill
进行几何点图。(或更好地用于geom_点)
库(ggplot2)
请检查您提供的示例数据。SUBJ和VAR的长度为8,但COND的长度为10。@TonyLadson感谢您指出这一点,我更正了它。我不确定您的示例数据如何用于箱线图和单独绘制的点,因为您只有8个值。这将生成一个条形图,绘制8个值并按主题填充:example%>%filter(COND!='BASELINE')%%>%ggplot(aes(COND,VAR,fill=subc))+geom\u col(position='dodge')
我不确定您是否真的想使用geom\u dotplot
进行打印。这是一个geom,不容易使用,并且可以进行装箱-您的示例数据不需要这样做。请尝试geom_point(aes(x=COND,y=VAR,color=COND))
代替。问题是我希望根据主题编号而不是条件用不同的颜色填充点。谢谢,这在我的完整数据集上非常有效@Jessflex博士很乐意帮忙。如果您对解决方案满意-答案旁边有一个复选标记,您可以接受它-这样问题就不会再被标记为未回答。谢谢