2016-08-17 584 views
0

我已将日志转换为我的数据,并计划将其作为ggplot2中的条形图进行绘制。数据如下所示:在ggplot2中更改X轴与Y轴交叉的位置

Log Transformed data

我想工作,如何改变其中X轴是在-4沿y轴定位......我可以在Excel中做到这一点,不过,我想喜欢在ggplot2中做到这一点。这些图表如下所示:

X axis at -4 intercept

有谁知道如何做到这一点?

+1

哪里是重复的例子?你的'ggplot'代码在哪里? [请参阅这里了解如何在数据共享和制作良好的重现示例](http://stackoverflow.com/q/5963269/903061) – Gregor

+0

ggplot实际上不适应这种类型的轴定位。一种解决方案可能是将“geom_hline(yintercept = 0)”添加到您的图中。 – jdobres

+0

这两个图表不相等。您已修改底部图表中的数据。 – hrbrmstr

回答

0

您在示例中修改了图表之间的数据。虽然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