首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dotPlot没有正确显示点颜色

dotPlot没有正确显示点颜色
EN

Stack Overflow用户
提问于 2015-09-02 22:13:54
回答 2查看 394关注 0票数 0

我有一个点图,我想给点着色,所以我有一个d$color向量,它对应于特定点的颜色。

问题1:当您运行下面的代码时,您可以看到点没有正确地着色吗?你知道怎么把它们涂好吗?代码需要动态处理颜色变化的情况。例如,在这种情况下,“红色”是第一个颜色,但情况并不总是如此。

问题2:你也知道如何使点填充而不是透明吗?

代码语言:javascript
复制
library(mosaic)
binwidth <- 1
dat <- c(1, 1, 1, 2, 3, 3, 4, 4, 5, 5)
d <- data.frame(x=dat, color=c("red", "green", "blue", "blue", "purple", "red",
                               "red", "blue", "green", "green"))
dotPlot(~x, data=d, groups=color, 
        breaks=seq(min(d$x) - binwidth, max(d$x) + binwidth, binwidth), 
        cex=1, col=as.factor(d$color))

问题3:你能运行这段代码吗?孤子在这里似乎不起作用:

代码语言:javascript
复制
n=50
r =rnorm(n)
dat = sample(r ,n= 1,size = n, replace = TRUE)
d = data.frame( x = dat, color = c(rep("red",n/2), rep("green",n/2)))
dotPlot(d$x,  breaks = seq(min(d$x)-.1,max(d$x)+.1,.1)) # this works
dotPlot(d$x,  breaks = seq(min(d$x)-.1,max(d$x)+.1,.1), groups = color,col = levels(d$color) ) # this does not work
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-02 22:41:49

若要按需要对点着色,请传递一个颜色矢量,该矢量对应于您所希望的组颜色(因此,这里是4种颜色的矢量,而不是10种颜色的向量)。

代码语言:javascript
复制
dotPlot(~x, data=d, groups=color, col=levels(d$color),
        breaks=seq(min(d$x) - binwidth, max(d$x) + binwidth, binwidth))

若要更改符号,请使用pch (有关内置绘图字符的列表,请参见?pch )。

代码语言:javascript
复制
dotPlot(~x, data=d, groups=color, col=levels(d$color), pch=20,
        breaks=seq(min(d$x) - binwidth, max(d$x) + binwidth, binwidth))

票数 1
EN

Stack Overflow用户

发布于 2015-09-02 22:40:33

对于Q2,只需在默认情况下用参数"pch“更改"point”的类型。

代码语言:javascript
复制
dotPlot(~x, data=d, groups = color, breaks = seq(min(d$x)-binwidth, max(d$x)+binwidth,binwidth), cex = 1, col = d$color, pch = 16)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32364020

复制
相关文章

相似问题

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