如何在R中创建分类散点图,如箱形图?

时间:2012-09-13 04:39:32

标签: r graph plot scatter-plot boxplot

是否有人知道如何在R中创建散点图以在PRISM的图形板中创建像these这样的图:

enter image description here

我尝试使用箱形图,但它们不按我想要的方式显示数据。图形板可以生成的这些列散点图可以更好地显示数据。

任何建议将不胜感激。

3 个答案:

答案 0 :(得分:4)

正如@smillig所提到的,你可以使用ggplot2实现这一点。下面的代码再现了你很好的情节 - 警告它非常棘手。首先加载ggplot2包并生成一些数据:

library(ggplot2)
dd = data.frame(values=runif(21), type = c("Control", "Treated", "Treated + A"))

接下来更改默认主题:

theme_set(theme_bw())

现在我们建立情节。

  1. 构建基础对象 - 未绘制任何内容:

    g = ggplot(dd, aes(type, values))
    
  2. 添加点:调整默认抖动并根据类型更改字形:

    g = g + geom_jitter(aes(pch=type), position=position_jitter(width=0.1))
    
  3. 在“框”上添加:计算框结束的位置。在这种情况下,我选择了平均值。如果您不想要这个框,只需忽略这一步。

    g = g + stat_summary(fun.y = function(i) mean(i), 
            geom="bar", fill="white", colour="black")
    
  4. 添加一些错误栏:计算上限/下限并调整条宽:

    g  = g + stat_summary(
            fun.ymax=function(i) mean(i) + qt(0.975, length(i))*sd(i)/length(i), 
            fun.ymin=function(i) mean(i) - qt(0.975, length(i)) *sd(i)/length(i),
            geom="errorbar", width=0.2)
    
  5. 显示情节

    g
    
  6. enter image description here

    1. 在我上面的R代码中,我使用stat_summary来计算动态所需的值。您还可以创建单独的数据框,并使用geom_errorbargeom_bar
    2. 要使用基础R,请查看我对此question的回答。

答案 1 :(得分:3)

如果您不介意使用ggplot2软件包,可以使用geom_boxplotgeom_jitter轻松制作类似的图片。使用mtcars示例数据:

library(ggplot2)
p <- ggplot(mtcars, aes(factor(cyl), mpg)) 
p + geom_boxplot() + geom_jitter() + theme_bw()

生成以下图形:

enter image description here

可以在此处查看文档:{​​{3}}

答案 2 :(得分:-1)

我最近遇到了同样的问题,并使用 .collect(Collectors.joining()) 找到了自己的解决方案。 例如,我创建了 ggplot2 数据集的一个子集。

chickwts

由于在 library(ggplot2) library(dplyr) data(chickwts) Dataset <- chickwts %>% filter(feed == "sunflower" | feed == "soybean") 中无法将点更改为符号,因此我使用了 geom_dotplot() 如下:

geom_jitter()

这是最后的情节:

enter image description here

更多细节,你可以看看这篇文章:

http://withheadintheclouds1.blogspot.com/2021/04/building-dot-plot-in-r-similar-to-those.html?m=1