【问题标题】:adding x and y axis labels in ggplot2在ggplot2中添加x和y轴标签
【发布时间】:2012-05-03 20:20:19
【问题描述】:

请问如何更改此图上的 x 和 y 标签?

library(Sleuth2)
library(ggplot2)
discharge<-ex1221new$Discharge
area<-ex1221new$Area
nitrogen<-ex1221new$NO3
p <- ggplot(ex1221new, aes(discharge, area), main="Point")
p + geom_point(aes(size= nitrogen)) + 
    scale_area() + 
    opts(title = expression("Weighted Scatterplot of Watershed Area vs. Discharge and Nitrogen Levels (PPM)"), 
         subtitle="n=41")

【问题讨论】:

    标签: r label ggplot2


    【解决方案1】:

    [注:编辑以使 ggplot 语法现代化]

    您的示例不可重现,因为没有ex1221newSleuth2 中有一个ex1221,所以我猜这就是您的意思)。此外,您不需要(也不应该)将列拉出来发送到ggplot。一个优点是ggplot 可以直接与data.frames 一起使用。

    您可以使用xlab()ylab() 设置标签,或使其成为scale_*.* 调用的一部分。

    library("Sleuth2")
    library("ggplot2")
    ggplot(ex1221, aes(Discharge, Area)) +
      geom_point(aes(size=NO3)) + 
      scale_size_area() + 
      xlab("My x label") +
      ylab("My y label") +
      ggtitle("Weighted Scatterplot of Watershed Area vs. Discharge and Nitrogen Levels (PPM)")
    

    ggplot(ex1221, aes(Discharge, Area)) +
      geom_point(aes(size=NO3)) + 
      scale_size_area("Nitrogen") + 
      scale_x_continuous("My x label") +
      scale_y_continuous("My y label") +
      ggtitle("Weighted Scatterplot of Watershed Area vs. Discharge and Nitrogen Levels (PPM)")
    

    另一种仅指定标签的方法(如果您不更改刻度的任何其他方面,则很方便)是使用labs 函数

    ggplot(ex1221, aes(Discharge, Area)) +
      geom_point(aes(size=NO3)) + 
      scale_size_area() + 
      labs(size= "Nitrogen",
           x = "My x label",
           y = "My y label",
           title = "Weighted Scatterplot of Watershed Area vs. Discharge and Nitrogen Levels (PPM)")
    

    它给出了与上述相同的数字。

    【讨论】:

      【解决方案2】:

      由于没有给出数据 ex1221new,所以我创建了一个虚拟数据并将其添加到数据框中。此外,被问到的问题在代码中几乎没有变化,例如 ggplot 包已弃用

      "scale_area()" and nows uses scale_size_area()
      "opts()" has changed to theme()
      

      在我的回答中,我已将绘图存储在 mygraph 变量中,然后我使用了

      mygraph$labels$x="Discharge of materials" #changes x axis title
             mygraph$labels$y="Area Affected" # changes y axis title
      

      工作完成了。以下是完整答案。

      install.packages("Sleuth2")
      library(Sleuth2)
      library(ggplot2)
      
      ex1221new<-data.frame(Discharge<-c(100:109),Area<-c(120:129),NO3<-seq(2,5,length.out = 10))
      discharge<-ex1221new$Discharge
      area<-ex1221new$Area
      nitrogen<-ex1221new$NO3
      p <- ggplot(ex1221new, aes(discharge, area), main="Point")
      mygraph<-p + geom_point(aes(size= nitrogen)) + 
        scale_size_area() + ggtitle("Weighted Scatterplot of Watershed Area vs. Discharge and Nitrogen Levels (PPM)")+
      theme(
       plot.title =  element_text(color="Blue", size=30, hjust = 0.5), 
      
       # change the styling of both the axis simultaneously from this-
       axis.title = element_text(color = "Green", size = 20, family="Courier",)
       
      
         # you can change the  axis title from the code below
         mygraph$labels$x="Discharge of materials" #changes x axis title
         mygraph$labels$y="Area Affected" # changes y axis title
         mygraph
      
      
      
         
      

      此外,您可以使用上面使用的相同公式更改标签标题 -

      mygraph$labels$size= "N2" #size contains the nitrogen level 
      

      【讨论】:

        猜你喜欢
        • 2021-02-21
        • 2020-11-05
        • 1970-01-01
        • 1970-01-01
        • 2017-01-02
        • 2012-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多