Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将每个数据点用颜色填充到R中的相应主题?_R_Ggplot2_Data Visualization_Figure - Fatal编程技术网

如何将每个数据点用颜色填充到R中的相应主题?

如何将每个数据点用颜色填充到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,

我有一组数据,受试者在两种治疗条件(休息/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, 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博士很乐意帮忙。如果您对解决方案满意-答案旁边有一个复选标记,您可以接受它-这样问题就不会再被标记为未回答。谢谢