【问题标题】:how can I plot the bar plot attached to box plot如何绘制附加到箱线图的条形图
【发布时间】:2016-07-12 12:03:52
【问题描述】:

我的一小部分数据如下所示

dt<- structure(c(79L, 54L, 37L, 41L, 42L, 121L, 134L, 169L, 23L, 19L, 
22L, 19L, 25L), .Names = c("Experi_1", "Experi_2", "Experi_3", 
"Experi_4", "Experi_5", "Experi_6", "Experi_7", "Experi_8", "Experi_9", 
"Experi_10", "Experi_11", "Experi_12", "Experi_13"))

我尝试制作的是将条形图分配给下面的箱形图 我已经阅读了此评论,并尝试使用它但没有成功

Align barplot with boxplot in R

可以像这样简单地绘制条形图。但是,我无法控制我的 x 轴。例如,如果我想以 5 的距离绘制它,我不能。假设 1、5、10 和 13 作为 x 轴标签。无论如何,这不是一个大问题。问题在于为这个条形图分配一个箱形图!

barplot(dt, xlab="Number of S in each experiment")

我使用以下添加箱线图,但似乎没有这样做

xlim <- c(-0.5, 0.5) + range(dt)
par(mar=c(3.1, 3.1, 1.1, 2.1))
boxplot(dt, horizontal=TRUE,  outline=TRUE, ylim=xlim, frame=F, width = 10)

【问题讨论】:

  • 你能澄清一下你想在条形图中显示什么吗?你确定你不想要直方图而不是条形图吗?
  • @jkt 感谢您的留言。我确定我不想要直方图。但即使使用直方图,我仍然无法将这个箱形图添加到其中。我试图展示我在每个实验中识别出的信号数量。所以我不需要做频率而是值
  • @jkt 我从条形图中删除了 main 以避免误解
  • @C8H10N4O2 有关系吗?两者都是一样的。如果我对齐一个箱形图或将一个箱形图分配给一个图,我认为两者都给出了相同的想法,不是吗?如果我错了,请纠正我
  • @nik 不,它没有。如果我将一个箱形图分配给另一个图,我会得到一个图。如果我将一个箱形图与另一个图对齐,那么我会得到两个并排的图。

标签: r plot bar-chart boxplot


【解决方案1】:

我认为问题在于您没有拆分窗口。使用layout() 执行此操作(如帖子所建议)。

layout(mat = matrix(c(1,2),2,1, byrow=TRUE),  height = c(3,1))
par(mar=c(3.1, 3.1, 1.1, 2.1))
barplot(dt, main="Distribution", xlab="Number of each experiment")
boxplot(dt, horizontal=TRUE,  outline=TRUE, frame=F, width = 10)

【讨论】:

  • 我已经喜欢你的回答了;我有两个问题,一个是如何调整 x 轴标签?例如,如果我只想显示 Experi1、Experi7 和 experi 13,那么该怎么做呢?第二个是我能从这个箱形图中理解什么?这是否考虑到整个数据?例如什么是中位数?你知道吗?
  • @nik 中位数是将数据的上半部分与下半部分相除的值。箱线图考虑了整个数据并将异常值绘制为晶须外的单独点。从boxplot 中删除ylim 参数以查看您的异常值。[re x-labels:请查看我对您单独查询的回答]。
  • @nik 你的评论让我意识到如果我删除ylim 会更清楚。我最初了解到您想要对齐轴,但事实并非如此。
  • 如果你删除了 ylim,那么你就没有两个地块在一个地块中。
  • @nik ??这不是真的。 ylimlayout 没有影响。再试一次。
【解决方案2】:

您忘记使用“布局”行。 以下应该可以工作。

    nf <- layout(mat = matrix(c(1,2),2,1, byrow=TRUE),  height = c(3,1))
    par(mar=c(3.1, 3.1, 1.1, 2.1))
    barplot(dt, main="Distribution", xlab="Number of each experiment")
    boxplot(dt, horizontal=TRUE,  outline=TRUE, ylim=xlim, frame=F, width = 10)

【讨论】:

  • 上面给出了类似的答案!所以为了确保我接受正确的答案,我有两个问题,一个是如何调整 x 轴标签?例如,如果我只想显示 Experi1、Experi7 和 experi 13,那么该怎么做呢?第二个是我能从这个箱形图中理解什么?这是否考虑到整个数据?例如什么是中位数?你知道吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 2019-11-13
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
相关资源
最近更新 更多