我正在尝试绘制一个条形图(使用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))
答案 0 :(得分: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
的代码那样编写工具的人,所以他们可能不会觉得这是值得做的事情。
答案 1 :(得分: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)
这是误导性的,总的来说是一个糟糕的图表。你最好留下负值和原始图。