最近對ggplot2(2.2.0)的更新已經破壞了我們的一些繪圖,因爲繪製點的順序已經改變。例如,下面的代碼:您可以手動控制ggplot2 geom_point遮擋/重疊順序嗎?
library(dplyr)
library(ggplot2)
library(tibble)
df <- tribble(~a, ~x, ~y,
"I", "A", 2,
"I", "B", 3,
"II","A", 2,
"II","B", 3)
ggplot(df, aes(x = x, y = y, color = a)) +
geom_point(size = 5, position = position_dodge(width = 0.1))+
coord_cartesian(ylim = c(0,15))
產生兩個最新版本GGPLOT2之間的不同版本,
注意到在該點重疊的順序之差(即新版本與頂部最左邊的點重疊)。我可以扭轉其類別通過反轉因子順序重疊的順序:
library(dplyr)
library(ggplot2)
library(tibble)
library(forcats)
df <- tribble(~a, ~x, ~y,
"I", "A", 2,
"I", "B", 3,
"II","A", 2,
"II","B", 3)
ggplot(df, aes(x = x, y = y, color = fct_rev(a))) +
geom_point(size = 5, position = position_dodge(width = 0.1))+
coord_cartesian(ylim = c(0,15))
,但這並沒有幫助,因爲它現在還顛倒閃避順序。
有誰知道的任何方式重現以前的行爲?是否有可能手動顛倒點的繪製順序而不改變它們躲避的順序?
感謝張貼的一個小例子。但是,請考慮進一步簡化:是否真的有必要加載'dplyr','tibble'和'forcats'來說明您的問題? – Henrik
相關:[控制層次的position_dodge](http://stackoverflow.com/questions/40265539/control-hierachy-of-position-dodge)? – Henrik
左邊的點總是繪製在最上面。你可以使用'col'和'group'來證明這一點。只有閃避順序很重要,並且由'group'控制(如果僅提供'col',則會自動設置)。 – Axeman