0

我正在尝试绘制一个条形图(使用 R),其中数据从 -12 向上增长到 -5。我尝试了很多东西,但没有成功。这是我尝试过的,但条形图总是从零开始增长。很奇怪!请帮忙。

RN <- c("A", "B", "C", "D", "E", "F")
Exp <- c(-7, -8, -9, -10, -10, -7)
Model <- c(-6, -7, -8, -10, -8, -6)

dim <- list(c('Exp','Model'), RN)

mydata = matrix(c(Exp , Model), nrow = 2, byrow = TRUE, dimnames = dim)
mydata

barplot(mydata, beside=TRUE, ylim=c(-12,-5), space = c(0.1 , 0.9))
4

2 回答 2

1

我看不到直接通过barplot(当然,您始终可以自己从头开始构建它)的方法。但这里有一个使用ggplot2的选项:

library(ggplot2)
library(reshape2)
dat <- melt(mydata)

ggplot(dat,aes(x = Var2,y = value)) + 
    geom_bar(aes(fill = Var1),position = "dodge",stat = "identity") + 
    coord_cartesian(ylim = c(-4.75,-10.25))

在此处输入图像描述

仅供参考:这并不简单的一个可能原因barplot是,像这样的截断轴在数据可视化专家中经常被认为是一件坏事(它可能会在数量之间产生误导性的巨大差异,因为你人为地改变了比例),他们也碰巧是那种可能正在编写类似代码之类的工具的人barplot,所以他们可能不会想到这是值得做的事情。

于 2013-06-06T03:41:16.743 回答
1

这是可能的,但请不要这样做,除非你有充分的理由(而且我想不出任何可能的理由):

offset <- 5
barplot(-mydata-offset, beside=TRUE, ylim=c(5,12), 
        space = c(0.1 , 0.9), offset=offset, axes=FALSE)
axis(2, at=5:12, labels=-12:-5)

在此处输入图像描述

它具有误导性,并且通常会产生糟糕的图表。你最好留下负值和原始图表。

于 2013-06-06T03:48:16.237 回答