【问题标题】:How to format the scatterplots of data series in R如何在R中格式化数据系列的散点图
【发布时间】:2017-04-01 06:03:23
【问题描述】:

我一直在努力在 R 中创建一个看起来不错的散点图。我认为这并不难。 经过一些研究,在我看来ggplot 将是一个允许大量格式化的选择。但是,我很难理解它是如何工作的。 我想创建两个数据系列的散点图,用两种不同的颜色显示点,也许还有不同的形状,以及一个带有系列名称的图例。 这是我的尝试,基于this:

year1 <- mpg[which(mpg$year==1999),]
year2 <- mpg[which(mpg$year==2008),]

ggplot() + 
  geom_point(data = year1, aes(x=cty,y=hwy,color="yellow"))  +
  geom_point(data = year2, aes(x=cty,y=hwy,color="green")) +
  xlab('cty') +
  ylab('hwy')

现在,这看起来几乎没问题,但颜色不匹配(除非我突然变得色盲)。这是为什么? 另外,如何添加系列名称和更改符号形状?

【问题讨论】:

    标签: r ggplot2 scatter-plot


    【解决方案1】:

    不要构建 2 个不同的数据框:

    df <- mpg[which(mpg$year%in%c(1999,2008)),]
    df$year<-as.factor(df$year)
    ggplot() + 
      geom_point(data = df, aes(x=cty,y=hwy,color=year,shape=year))  +
      xlab('cty') +
      ylab('hwy')+
      scale_color_manual(values=c("green","yellow"))+
      scale_shape_manual(values=c(2,8))+
      guides(colour = guide_legend("Year"),
             shape = guide_legend("Year"))
    

    【讨论】:

    • 太棒了,在这个框架中如何控制符号形状?
    • 您可以在aes ()+scale_shape_manual(values=c(...)) 中添加shape=as.factor(year) 以将它们设置为适合您需要的任何内容。
    • 那行得通,谢谢,但是我得到了两个图例:一个用于颜色,一个用于形状...我可以以某种方式“合并”这些图例吗?
    • 所以,看起来需要创建两个相同的 guide_legend() 才能让 R 理解它是同一个,对吧?
    • 不,您可以跳过guides() 部分,因为colorshape 都指同一个label(年份),您将只有一个图例。但是,如果您想要一个自定义标题(我将 Year 放在此处),您需要指定 guide 并为每个 scale 提供相同的标题,以便它保持为一个。你可以试一试,很快就会明白ggplot是如何处理它的。
    【解决方案2】:

    这将适用于您当前的设置方式:

    ggplot() + 
      geom_point(data = year1, aes(x=cty,y=hwy), col = "yellow", shape=1)  +
      geom_point(data = year2, aes(x=cty,y=hwy), col="green", shape=2) +
      xlab('cty') +
      ylab('hwy')
    

    【讨论】:

    • 我明白了。所以'col'和'shape'是geom_point()的选项而不是aes()的选项......以及如何添加带有自定义系列名称的图例?谢谢!
    【解决方案3】:

    你想要:

    library(ggplot2)    
    ggplot(mpg, aes(cty, hwy, color=as.factor(year)))+geom_point()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 1970-01-01
      • 2021-02-15
      • 2014-10-09
      • 2015-02-17
      • 1970-01-01
      相关资源
      最近更新 更多