ggplot: adjusting alpha/fill two factors cdf

2019-05-02 16:51发布

I'm having some issues getting my ggplot alpha to be sufficiently dark for my plot.

Example code:

ggplot(mtcars, aes(x=mpg, color=factor(gear), alpha=factor(carb))) + stat_ecdf()

enter image description here

As you can see, whenever carb == 1, it's very difficult to see the plot elements. In my real world data set, the factor for color has four levels and the alpha factor has two levels. I was hoping to have the alpha a slightly lighter shade of the color, but more visible than how it's occurring in that example).

1条回答
兄弟一词,经得起流年.
2楼-- · 2019-05-02 17:34

You can adjust the alpha scale, as the user in the comment suggests, either by specifying a range or a specific set breaks to scale_alpha_discrete. That doesn't produce a very easy-to-read result, though:

ggplot(mtcars, aes(x=mpg, color=factor(gear), alpha=factor(carb))) + 
  stat_ecdf() + 
  scale_alpha_discrete(range=c(0.4, 1))

enter image description here

Another option would be to save color for the many-leveled factor and choose a different aesthetic for the few-leveled one, like maybe linetype

ggplot(mtcars, aes(x=mpg, linetype=factor(gear), color=factor(carb))) + 
  stat_ecdf()

enter image description here

For readability, though, faceting might be a better bet.

ggplot(mtcars, aes(x=mpg, color=factor(carb))) + 
  stat_ecdf() + facet_wrap(~gear, nrow=3)

enter image description here

查看更多
登录 后发表回答