首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中创建类似箱图的分类散点图?

如何在R中创建类似箱图的分类散点图?
EN

Stack Overflow用户
提问于 2012-09-13 12:39:32
回答 3查看 11.6K关注 0票数 5

有谁知道如何在R中创建散点图,以便在PRISM的graphpad中创建类似于these的图:

我尝试使用箱形图,但它们不能以我想要的方式显示数据。这些由graphpad生成的柱状散点图为我更好地显示了数据。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-13 16:00:44

正如@smillig提到的,你可以使用ggplot2来实现这一点。下面的代码重现了你非常好的警告之后的情节,这是相当棘手的。首先加载ggplot2包并生成一些数据:

代码语言:javascript
复制
library(ggplot2)
dd = data.frame(values=runif(21), type = c("Control", "Treated", "Treated + A"))

接下来,更改默认主题:

代码语言:javascript
复制
theme_set(theme_bw())

现在我们来构建这个图。

  1. 构造一个基本对象-不绘制任何内容:

G= ggplot(dd,aes(type,values))

  • 添加点:调整默认抖动并根据类型更改字形:

G=g+ geom_jitter(aes(pch=type),position=position_jitter(width=0.1))

  • Add on the " box ":计算盒的结束位置。在本例中,我选择了平均值。如果你不想要这个盒子,只需省略这一步。

G=g+fun.y=函数(I) colour="black")

  • Add (I)stat_summary(I),geom=“fill=”,fill=“fill=”,Fun.y在某些误差条上:计算上下界并调整条宽:

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",作图

g

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

的回答

票数 4
EN

Stack Overflow用户

发布于 2012-09-13 15:36:12

如果您不介意使用ggplot2包,有一种简单的方法可以用geom_boxplotgeom_jitter制作类似的图形。使用mtcars示例数据:

代码语言:javascript
复制
library(ggplot2)
p <- ggplot(mtcars, aes(factor(cyl), mpg)) 
p + geom_boxplot() + geom_jitter() + theme_bw()

这将生成以下图形:

文档可在此处查看:http://had.co.nz/ggplot2/geom_boxplot.html

票数 3
EN

Stack Overflow用户

发布于 2021-04-11 20:11:49

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

代码语言:javascript
复制
library(ggplot2)
library(dplyr)
data(chickwts)
Dataset <- chickwts %>%
            filter(feed == "sunflower" | feed == "soybean")

由于在geom_dotplot()中无法将点改为符号,因此我按如下方式使用了geom_jitter()

代码语言:javascript
复制
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()

这是最终的图:

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

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12399506

复制
相关文章

相似问题

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