2016-08-17 7 views
0

У меня журнал преобразовал мои данные и планировал построить это как гистограмму в ggplot2. Данные выглядят следующим образом:Изменение, где ось X пересекает ось Y в ggplot2

Log Transformed data

Я хотел бы работать, как изменить, где ось X расположена вдоль оси у на -4 ... Я могу сделать это в 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 
Смежные вопросы