我正在尝试显示一个点图,并使用d$color对这些点进行着色。在当前解决方案设置中,col = c("red","green")不是动态的。您可以看到d$颜色中的第一个点应该是绿色的,但它显示为红色。应该有6个绿点和4个红点,但有6个红点和4个绿点。
D向量中的数据会一直改变,所以硬编码col = c("red","green")将不能获得精确的点颜色。有没有一种只使用col = d$color的方法?
library(mosaic)
n=10
r =c(seq(1,15,1))
binwidth = 1
dat = sample(r ,n= 1,size = n, replace = TRUE)
d = data.frame( x = dat, color = c(rep("red",n/2), rep("green",n/2)))
d$color[1] = "green"
d
dotPlot(~x,data=d, groups = color, breaks = seq(min(d$x)-binwidth,max(d$x)+binwidth,binwidth), cex = 1, col = c("red","green"))发布于 2015-09-02 12:03:38
因为这是一个点阵图,当你想要在同一面板中单独的项目时,你需要使用"groups“作为参数,并且'col‘需要是一个长度与组数相同的向量:
dotPlot(~x, groups=color,data=d, breaks = seq(min(d$x)-.1,max(d$x)+.1,.1), col=c("green","red"))d$color列将有一个隐式的“-ing()”因子,并且提供给col参数的颜色的顺序需要与将产生的颜色列的词汇顺序相匹配,因此“绿色”是第一个,“红色”是第二个。如果你想以编程的方式来完成这项工作,那么它应该是col=sort(unique(d$color))。

https://stackoverflow.com/questions/32342585
复制相似问题