Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中创建分类散点图,如箱线图?_R_Graph_Plot_Scatter Plot_Boxplot - Fatal编程技术网

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

如何在R中创建分类散点图,如箱线图?,r,graph,plot,scatter-plot,boxplot,R,Graph,Plot,Scatter Plot,Boxplot,有人知道如何在R中创建散点图来创建类似PRISM graphpad的图: 我尝试使用箱线图,但它们不能以我想要的方式显示数据。graphpad生成的这些列散点图可以更好地显示数据 如有任何建议,将不胜感激 如果您不介意使用ggplot2软件包,有一种简单的方法可以使用geom\u盒形图和geom\u抖动制作类似的图形。使用mtcars示例数据: library(ggplot2) p <- ggplot(mtcars, aes(factor(cyl), mpg)) p + geom_bo

有人知道如何在
R
中创建散点图来创建类似PRISM graphpad的图:

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


如有任何建议,将不胜感激

如果您不介意使用
ggplot2
软件包,有一种简单的方法可以使用
geom\u盒形图
geom\u抖动
制作类似的图形。使用
mtcars
示例数据:

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

p正如@smillig提到的,您可以使用ggplot2实现这一点。下面的代码很好地再现了你想要的情节——警告:这是相当棘手的。首先加载ggplot2包并生成一些数据:

library(ggplot2)
dd = data.frame(values=runif(21), type = c("Control", "Treated", "Treated + A"))
接下来更改默认主题:

theme_set(theme_bw())
现在我们来建立这个情节

  • 构造基础对象-不打印任何内容:

    g = ggplot(dd, aes(type, values))
    
  • 添加点:调整默认抖动并根据类型更改图示符:

    g = g + geom_jitter(aes(pch=type), position=position_jitter(width=0.1))
    
  • 在“框”上添加:计算框的结束位置。在本例中,我选择了平均值。如果您不需要该框,只需忽略此步骤即可

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

    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)
    
  • 显示绘图

    g
    
  • 在上面的R代码中,我使用了
    stat\u summary
    来计算动态所需的值。您还可以创建单独的数据帧并使用
    geom\u errorbar
    geom\u bar
  • 要使用base R,请看一下我的答案

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

    library(ggplot2)
    library(dplyr)
    data(chickwts)
    Dataset <- chickwts %>%
                filter(feed == "sunflower" | feed == "soybean")
    
    这是最后的情节:

    有关更多详细信息,请查看以下帖子:


    谢谢csgillespie,你的2号链接实际上给了我很多我需要的东西。但两者都是很好的解决方案。我调整了一些供自己使用。这样做的目的是能够在一个绘图帧中显示两个组的中间值,以及数据点和异常值。下面是代码:@user1322919这不是一个简单的解决方案。我想问另一个问题虽然这个链接可以回答这个问题,但最好在这里包括答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效-
    Dataset %>%
        ggplot(aes(feed, weight, fill = feed)) +
        geom_jitter(aes(shape = feed, col = feed), size = 2.5, width = 0.1)+
        stat_summary(fun = mean, geom = "crossbar", width = 0.7,
                 col = c("#9E0142","#3288BD")) +
        scale_fill_manual(values = c("#9E0142","#3288BD")) +
        scale_colour_manual(values = c("#9E0142","#3288BD")) +
        theme_bw()