R语言 更改ggplot2中X轴与Y轴相交的位置

z9gpfhce  于 2023-11-14  发布在  其他
关注(0)|答案(3)|浏览(201)

我已经对我的数据进行了日志转换,并计划在ggplot 2中将其绘制为条形图。数据如下所示:
x1c 0d1x的数据
我想弄清楚如何改变X轴沿y轴沿着的位置为-4.我可以在excel中这样做,但是我想在ggplot 2中这样做。图形如下所示:



有人知道怎么做吗?

uinbv5nw

uinbv5nw1#

你在例子中修改了图表之间的数据。虽然geom_bar()或它的新表亲geom_col()要求y为0(这是理所当然的,你真的不应该这样做),但你可以对geom_segment()做类似的事情:

library(ggplot2) # devtools::install_github("hadley/ggplot2")

# your original data
df <- data.frame(x=1:4, y=c(6, 4, -2, -3))
gg <- ggplot(df, aes(x, y))
gg <- gg + geom_col(width=0.5)
gg <- gg + theme_bw()
gg

# your modified data
df <- data.frame(x=1:4, y=c(10, 8, 2, 1))
gg <- ggplot(df, aes(x=x, xend=x, y=-4, yend=y-4))
gg <- gg + geom_segment(size=10)
gg <- gg + theme_bw()
gg

字符串

34gzjxbg

34gzjxbg2#

你可以将y轴的值转换为以你想要创建的新轴为中心。然后在scale_y_continuous()中,你可以指定breaks =和labels=来重命名y轴的值(你转换的值)。
在下面的例子中,我首先通过mutate()我的y值将y值集中在.8左右。然后我绘制geom_col()并修改scale_y_continuous with label,表示未转换的y值....瞧;)

`df %>% 
  mutate(yvalue = yvalue - .8) %>% 
  ggplot(aes(x = FACTOR, y = yvalue)
  geom_col(position = "dodge", color = "black")+
  scale_y_continuous(limits = c(-.2,.4),
                     breaks = seq(-.2,.4,.1),
                     labels = seq(.6,1.2,.1))`

字符串

1tu0hz3e

1tu0hz3e3#

从这个人自己,哈德利威克姆:https://groups.google.com/g/ggplot2/c/c3DVxA-zMY0“这是不可能的ggplot”虽然上述答案找到其他方法围绕这一点,它是,然而,有可能改变轴交叉在基地r图:

#global meteoric water line (GMWL) plot 
# draw plot but dont draw axes
plot(rnorm(5, -3, 4), rnorm(5,-40,15), xlim = c(-10,2), ylim = c(-60,10), xaxt = 'n', yaxt = 'n', col = 'red')

    abline(a = 10, b = 8) #add a straignt line

    abline(v = 0) # straight vertical line at 0

    abline(h = 0) # straight horizontal line at zero

    axis(1, pos = 0) # x axis at zero

    axis(2, pos = 0) # y axis at zero

字符串


的数据

相关问题