How to merge colour and shape?

前端 未结 3 1764
我寻月下人不归
我寻月下人不归 2021-02-01 23:38

My troubles started when I had a variable with more than 6 values because that is the current maximum value for the scale_shape function in ggplot2.

Due to that problem

3条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2021-02-02 00:41

    here is an example:

    plot1 <- ggplot(dataf, aes(x=Density, y=Growth, colour=Municipality,
            shape=Municipality))
    plot1 <- plot1 + geom_point(size=3)
    plot1 <- plot1 + scale_colour_discrete() + 
    scale_shape_manual(values=as.numeric(dataf$Shape))
    plot1
    

    if you need filled shapes, then replace with

    scale_shape_manual(values=c(16, 17, 15, 3, 7, 8)[as.numeric(dataf$Shape)])
    

    the tricks are:

    1. use same variable for colour and shape aes (Municipality)
    2. use scale_shape_manual and make mapping of breaks (here, Municipality) and value (here, dataf$Shape)
    3. you need numeric variable instead of factor for values of scale_shape_manual

提交回复
热议问题