首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以使用mosaic::dotPlot为点着色?

是否可以使用mosaic::dotPlot为点着色?
EN

Stack Overflow用户
提问于 2015-09-02 07:50:17
回答 1查看 121关注 0票数 2

我正在尝试显示一个点图,并使用d$color对这些点进行着色。在当前解决方案设置中,col = c("red","green")不是动态的。您可以看到d$颜色中的第一个点应该是绿色的,但它显示为红色。应该有6个绿点和4个红点,但有6个红点和4个绿点。

D向量中的数据会一直改变,所以硬编码col = c("red","green")将不能获得精确的点颜色。有没有一种只使用col = d$color的方法?

代码语言:javascript
复制
  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"))
EN

回答 1

Stack Overflow用户

发布于 2015-09-02 12:03:38

因为这是一个点阵图,当你想要在同一面板中单独的项目时,你需要使用"groups“作为参数,并且'col‘需要是一个长度与组数相同的向量:

代码语言:javascript
复制
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))

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32342585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档