<div>foo</div><div>bar</div><div>baz</div>
//solution 1
<style>
#div01, #div02, #div03 {
float:left;
width:2%;
}
</style>
<div id="div01">foo</div><div id="div02">bar</div><div id="div03">baz</div>
//solution 2
<style>
#div01, #div02, #div03 {
display:inline;
padding-left:5px;
}
</style>
<div id="div01">foo</div><div id="div02">bar</div><div id="div03">baz</div>
/* I think this would help but if you have any other thoughts just let me knw kk */
tl; dr
Никогда не использует [
или $
внутри aes()
.
Рассмотрим этот иллюстративный пример, фасетная переменная f
намеренно в неочевидном порядке относительно x
d <- data.frame(x=1:10, f=rev(letters[gl(2,5)]))
. Теперь сравните то, что происходит с этими двумя графиками,
p1 <- ggplot(d) +
facet_grid(.~f, labeller = label_both) +
geom_text(aes(x, y=0, label=x, colour=f)) +
ggtitle("good mapping")
p2 <- ggplot(d) +
facet_grid(.~f, labeller = label_both) +
geom_text(aes(d$x, y=0, label=x, colour=f)) +
ggtitle("$ corruption")
Мы можем получить лучшее представление о том, что происходит, если посмотреть на data.frame, созданный внутренне ggplot2 для каждой панели,
ggplot_build(p1)[["data"]][[1]][,c("x","PANEL")]
x PANEL
1 6 1
2 7 1
3 8 1
4 9 1
5 10 1
6 1 2
7 2 2
8 3 2
9 4 2
10 5 2
ggplot_build(p2)[["data"]][[1]][,c("x", "PANEL")]
x PANEL
1 1 1
2 2 1
3 3 1
4 4 1
5 5 1
6 6 2
7 7 2
8 8 2
9 9 2
10 10 2
. Второй график имеет неправильное отображение, потому что, когда ggplot создает data.frame для каждой панели, он выбирает значения x в «неправильном» порядке.
Это происходит из-за того, что использование $
нарушает связь между различными отображаемыми переменными (ggplot должен считать, что это независимая переменная, которая, как известно, может исходить от произвольного, отключенного источника). Поскольку data.frame в этом примере не упорядочен в соответствии с коэффициентом f
, подмножество данных. Кадры, используемые внутри каждой панели, принимают неправильный порядок.
ggplot2 v3.0.0.9000
– Tung 14 July 2018 в 17:41