最近对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