点图点未显示和点图格式
dotplot dot not showing up and format of dot plot
如何使用 mosaic 包显示彩色点来绘制点图?
library(mosaic)
n=500
r =rnorm(n)
d = data.frame( x = sample(r ,n= 1,size = n, replace = TRUE), color = c(rep("red",n/2), rep("green",n/2)))
dotPlot(d$x,breaks = seq(min(d$x)-.1,max(d$x)+.1,.1))
现在所有的点都是蓝色的,但我希望它们根据数据中的颜色列进行着色 table
您需要添加 stackgroups=TRUE
,这样两种不同的颜色就不会叠加在一起。
n=20
set.seed(15)
d = data.frame(x = sample(seq(1,10,1), n, replace = TRUE),
color = c(rep("red",n/2), rep("green",n/2)))
table(d$x[order(d$x)])
length(d$x[order(d$x)])
binwidth= 1
ggplot(d, aes(x = x)) +
geom_dotplot(breaks = seq(0.5,10.5,1), binwidth = binwidth,
method="histodot", aes(fill = color),
stackgroups=TRUE) +
scale_x_continuous(breaks=1:10)
此外,ggplot 使用其内部调色板来填充美学。无论您如何称呼数据中 "color" 列的值,您都会得到相同的颜色。如果您想手动设置颜色,请添加 scale_fill_manual(values=c("green","red"))
。
如果您仍然对 mosaic
/lattice
解决方案而不是 ggplot2
解决方案感兴趣,请继续。
dotPlot( ~ x, data = d, width = 0.1, groups = color,
par.settings=list(superpose.symbol = list(pch = 16, col=c("green", "red"))))
另请注意
- 与
ggplot2
一样,颜色不是由 color
变量中的值决定,而是由主题决定。您可以使用 par.settings
在绘图级别修改它或 trellis.par.set()
更改默认值。
- 最好使用公式和
data =
并避免使用 $
运算符。
- 如果要设置 bin 宽度,可以使用
width
参数而不是 breaks
。 (如果这对您很重要,您可以使用 center
参数来控制 bin 的中心。默认情况下,0 将是 bin 的中心。)
如何使用 mosaic 包显示彩色点来绘制点图?
library(mosaic)
n=500
r =rnorm(n)
d = data.frame( x = sample(r ,n= 1,size = n, replace = TRUE), color = c(rep("red",n/2), rep("green",n/2)))
dotPlot(d$x,breaks = seq(min(d$x)-.1,max(d$x)+.1,.1))
现在所有的点都是蓝色的,但我希望它们根据数据中的颜色列进行着色 table
您需要添加 stackgroups=TRUE
,这样两种不同的颜色就不会叠加在一起。
n=20
set.seed(15)
d = data.frame(x = sample(seq(1,10,1), n, replace = TRUE),
color = c(rep("red",n/2), rep("green",n/2)))
table(d$x[order(d$x)])
length(d$x[order(d$x)])
binwidth= 1
ggplot(d, aes(x = x)) +
geom_dotplot(breaks = seq(0.5,10.5,1), binwidth = binwidth,
method="histodot", aes(fill = color),
stackgroups=TRUE) +
scale_x_continuous(breaks=1:10)
此外,ggplot 使用其内部调色板来填充美学。无论您如何称呼数据中 "color" 列的值,您都会得到相同的颜色。如果您想手动设置颜色,请添加 scale_fill_manual(values=c("green","red"))
。
如果您仍然对 mosaic
/lattice
解决方案而不是 ggplot2
解决方案感兴趣,请继续。
dotPlot( ~ x, data = d, width = 0.1, groups = color,
par.settings=list(superpose.symbol = list(pch = 16, col=c("green", "red"))))
另请注意
- 与
ggplot2
一样,颜色不是由color
变量中的值决定,而是由主题决定。您可以使用par.settings
在绘图级别修改它或trellis.par.set()
更改默认值。 - 最好使用公式和
data =
并避免使用$
运算符。 - 如果要设置 bin 宽度,可以使用
width
参数而不是breaks
。 (如果这对您很重要,您可以使用center
参数来控制 bin 的中心。默认情况下,0 将是 bin 的中心。)