R 点打印点未显示和点打印格式

R 点打印点未显示和点打印格式,r,ggplot2,mosaic-plot,R,Ggplot2,Mosaic Plot,如何使用马赛克软件包显示彩色点以进行点打印 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)) 现在所有的点都是蓝色的,但我希望它们按照数据表中的颜色列上色您需

如何使用马赛克软件包显示彩色点以进行点打印

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))

现在所有的点都是蓝色的,但我希望它们按照数据表中的颜色列上色

您需要添加
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\u fill\u manual(值=c(“绿色”、“红色”))


您需要添加
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\u fill\u manual(值=c(“绿色”、“红色”))


如果您仍然对
马赛克
/
晶格
解决方案感兴趣,而不是
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。设置< /C> >在情节或“代码> > TrLLI.PAR.SET())/>代码>的级别上更改该默认值。
  • 最好使用公式和
    data=
    ,并避免使用
    $
    运算符
  • 如果要设置料仓宽度,可以使用
    width
    参数,而不是
    breaks
    。(如果这对您很重要,您可以使用
    center
    参数控制箱子的中心。默认情况下,0将是箱子的中心。)

如果您仍然对
马赛克
/
晶格
解决方案而不是
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。设置< /C> >在情节或“代码> > TrLLI.PAR.SET())/>代码>的级别上更改该默认值。
  • 最好使用公式和
    data=
    ,并避免使用
    $
    运算符
  • 如果要设置料仓宽度,可以使用
    width
    参数,而不是
    breaks
    。(如果这对您很重要,您可以使用
    center
    参数控制箱子的中心。默认情况下,0将是箱子的中心。)

谢谢您,似乎已经解决了问题1。你能帮我解决另外两个问题吗?如果我改变n=200,点不会出现,y轴不是计数。我需要动态更改yaxis限制,我认为这很有趣。我不确定为什么会发生这种情况,但我现在看到y轴的刻度实际上并不算。我来看看是否能弄清楚发生了什么。y刻度是一个带有
geom\u dotplot
的刻度。是的,这是一个已知的问题,但您可以使用ylim()来查看计数。查看他们在此处使用ylim的方式
ylim
(或
scale\u y\u continuous
)会更改y轴上的标签,但这些标签与点数不对应。谢谢,这似乎解决了问题1。你能帮我解决另外两个问题吗?如果我改变n=200,点不会出现,y轴不是计数。我需要动态更改yaxis限制,我认为这很有趣。我不确定为什么会发生这种情况,但我现在看到y轴的刻度实际上并不算。我来看看是否能弄清楚发生了什么。y刻度是一个带有
geom\u dotplot
的刻度。是的,这是一个已知的问题,但您可以使用ylim()来查看计数。se此处使用ylim的方式
ylim
(或
scale\u y\u continuous
)会更改y轴上的标签,但这些标签与点的数量不对应。