Я попытался выровнять различные графики, полученные с помощью geom_bar. Когда я запускаю каждый сюжет один за другим, он работает хорошо. Я получил то, что хочу. Но когда я агрегировать их все в одну кратную сюжет, я всегда такой же ....Сочетание ggplots стирает оригинальный сюжет?
Чтобы было ясно: это первый участок, который хорошо: enter image description here
Вот что я получил, когда я объединить обе графики. Первая колонка должна быть такой же, как и выше: ... enter image description here
Не могу найти проблему. Это мой сценарий:
##### colonne 6
i=6
col=compil[,i]
nom=names(compil[i])
maxi = max(col)
mini = min(col)
p5 <- ggplot(compil,aes(x=NIVEAU, y=col)) +
geom_bar(stat="identity",position = "identity",aes(width=0.85),
fill=ifelse(col > 1, rgb(63,202,20, maxColorValue = 255),
ifelse (col< -1,rgb(204,0,0, maxColorValue = 255),
rgb(160,160,160, maxColorValue=255)))) +
geom_hline(yintercept=0,color=rgb(160,160,160, maxColorValue=255))+
coord_flip(ylim=c(-2.5,2.5)) +
labs(x="", y="", title= nom) + guides(fill=F) +
theme(panel.grid.major=element_blank(), panel.grid.minor.x=element_blank(),
panel.background = element_blank(), axis.text.x=element_blank(),
axis.ticks = element_blank(),axis.line= element_blank(),
plot.margin=unit(c(1,-1,1,-1),"lines"), plot.title = element_text(size=10))
print(p5)
##### colonne 7
i=7
col=compil[,i]
nom=names(compil[i])
maxi = max(col)
mini = min(col)
p6 <- ggplot(compil,aes(x=NIVEAU, y=col)) +
geom_bar(stat="identity",position = "identity",aes(width=0.85),
fill=ifelse(col > 1, rgb(63,202,20, maxColorValue = 255),
ifelse (col< -1,rgb(204,0,0, maxColorValue = 255),
rgb(160,160,160, maxColorValue=255)))) +
geom_hline(yintercept=0,color=rgb(160,160,160, maxColorValue=255))+
coord_flip(ylim=c(-2.5,2.5)) +
labs(x="", y="", title= nom) + guides(fill=F) +
theme(panel.grid.major=element_blank(), panel.grid.minor.x=element_blank(),
panel.background = element_blank(), axis.text=element_blank(),
axis.ticks = element_blank(),axis.line= element_blank(),
plot.margin=unit(c(1,-1,1,-1),"lines"), plot.title = element_text(size=10))
print(p6)
vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
grid.newpage()
pushViewport(viewport(layout = grid.layout(1, 3)))
print(p5, vp = vplayout(1, 1:2))
print(p6, vp = vplayout(1, 3))
Если кто-то может помочь мне найти ошибку, я действительно ценю! Конечно, я делаю что-то не так, но что ?? Заранее благодарю за ваше время и вашу помощь!
это может быть связанно с 'ленивого Eval ggplot' и вы изменяя тот же набор значений для каждого участка, но это трудно сказать, без каких-либо примеров данных. возможно, переименуйте переменные для 'colonne 7', чтобы имена были уникальными для имен' colonne 6' – Nate
Чтобы проверить предложение @ NathanDay, попробуйте распечатать p5 после генерации p6. –
Я подумывал сделать петлю, поэтому я сохранил одно и то же имя ... но вы правы: я тоже был ленив! Переименовав все переменные, как сказал @Nathan Day, теперь он работает как expexted! Большое спасибо! – Sandrine