从标题名称中选择要添加到ggplot的文本

时间:2018-02-21 15:18:32

标签: r ggplot2

我想在图表的底部添加一些文字。我知道要添加文字,但我不确定如何在我的数据集中选择此列标题位置作为我添加到图表底部的文本My Data is included here.我还想制作数据中的一列标题为“System UpLoad Time = 2017年7月25日18:53:32”作为我在我的代码中添加的文本而不是“添加文本”。如何在不更改所有文件的情况下执行此操作?

library(readxl)
library(ggplot2)
library(reshape2)
library(grid)
library(gridExtra)


TestData$Temp2 <- (TestData$Temp/10)
TestData$Temperature <- (TestData$Temp2*56)
TestData$Chlorophyll <- (TestData$Derivedchlorophyll*56)    


dat.m <- melt(TestData, id=c ("Depth", "Temp", "Temp2", "Specific Conductance [µS/cm]", "FlECO-AFL", "Beam Attenuation (1/m)", 
                            "Beam Transmission (%)", "Transmissometer voltage", 
                            "Fluorometer voltage", "CDOM Voltage", "CDOM (mg/m^3)", "Flag", "Derivedchlorophyll"))

plot<-ggplot(data=subset(dat.m, variable %in% c("PAR","Temperature", "Chlorophyll")), aes(value, Depth, colour = variable)) +
  geom_point() + scale_y_reverse() + scale_x_continuous( "PAR", 
  sec.axis = sec_axis(~ . / 56, name = "Chlorophyll (µg/L)\nTemperature (10 °C)"))


grid.newpage()
footnote <- "ADD TEXT HERE"
g <- arrangeGrob(plot, bottom = textGrob(footnote, x = 0, hjust = -0.1, vjust=0.1, gp = gpar(fontface = "italic", fontsize = 12)))
grid.draw(g)

1 个答案:

答案 0 :(得分:0)

对于第二部分,如果“System UpLoad Time”始终位于标题的相同位置,我会使用:

footnote <- colnames(TestData)[15]

或者,如果标题中的位置因文件而异,请使用:

grep("System UpLoad Time =", colnames(TestData), value = T)

我不确定你在问题的第一部分中选择了什么,或者它实际上是同一个问题。虽然对上述内容的一些直觉应该有用。

此外,可能值得重新命名您的问题以适应实际问题 - 例如,“从标题名称中选择文本”。如您所说,您知道如何将文本放在ggplot图形下面。