如何为R中跨x轴镜像的两个变量创建条形图?

blJ*_*JOg 14 plot r graph

我有一个带有x变量和两个y1和y2变量的数据集(总共3列).我想将y1对x绘制为轴上方的条形图,将y2绘制在x轴下方相同图中的相同x处,以便两个条形图相互镜像.

下面的图D是我想要做的一个例子.

图**D**

And*_*rie 19

使用ggplot你会发现如下:

设置数据.这里没什么奇怪的,但显然在轴下方的值将是负数.

dat <- data.frame(
    group = rep(c("Above", "Below"), each=10),
    x = rep(1:10, 2),
    y = c(runif(10, 0, 1), runif(10, -1, 0))
)
Run Code Online (Sandbox Code Playgroud)

ggplot和绘图geom_bar.要防止geom_bar汇总数据,请指定stat="identity".同样,需要通过指定禁用堆叠position="identity".

library(ggplot2)
ggplot(dat, aes(x=x, y=y, fill=group)) + 
  geom_bar(stat="identity", position="identity")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


jor*_*ran 9

基本图形和lattice使用@Andrie示例数据的一些非常小的示例:

dat <- data.frame(
    group = rep(c("Above", "Below"), each=10),
    x = rep(1:10, 2),
    y = c(runif(10, 0, 1), runif(10, -1, 0))
)
Run Code Online (Sandbox Code Playgroud)

在基础图形中:

plot(c(0,12),range(dat$y),type = "n")
barplot(height = dat$y[dat$group == 'Above'],add = TRUE,axes = FALSE)
barplot(height = dat$y[dat$group == 'Below'],add = TRUE,axes = FALSE)
Run Code Online (Sandbox Code Playgroud)

bar_base

并在lattice:

barchart(y~x,data = dat, origin = 0, horizontal = FALSE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述