在图表的x轴上设置标签

时间:2013-09-26 19:59:14

标签: r ggplot2

我正在尝试绘制以下数据:

 ph1 = c(5, 6, 7, 8, 9)
 ph2 = ph3 = ph1

e1 = c(0.191, 0.154, 0.179, 0.073, 0.009)
e2 = c(0, 0.029, 0.054, 0.055, 0.024)
e3 = c(0.019, 0.027, 0.063, 0.029, 0.039)

set.seed(1)
df1 <- data.frame(e1 = sort(runif(5, 0.05, 0.25)),
                   e2 = sort(runif(5, 0.05, 0.25)),
                   e3 = sort(runif(5, 0.05, 0.25)),
                   ph1 = sort(runif(5, 1, 100)),
                   ph2 = sort(runif(5, 1, 100)),
                   ph3 = sort(runif(5, 1, 100))
                   )
### reshape this to give a column indicating group
 df2 <- with(df1,
         as.data.frame(cbind( c(ph1, ph2, ph3),
                             c(e1, e2, e3),
                             rep(seq(3), each=5) )
                       ))
 colnames(df2) <- c("ph","maltose_in_mg","team")
 df2$team <- as.factor(df2$team)
 library(ggplot2)
 ggplot(df2, aes(x=ph, y=maltose_in_mg, col=team)) + geom_line()

... x轴上的pH值(5到9)作为标签。不幸的是,标签显示从0到100。

编辑(注:非功能性解决方案):

df1 <- data.frame(e1 = sort(runif(5, 0.05, 0.25)),
                  e2 = sort(runif(5, 0.05, 0.25)),
                  e3 = sort(runif(5, 0.05, 0.25)),
                  ph1 = sort(runif(1, 5, 9)),
                  ph2 = sort(runif(1, 5, 9)),
                  ph3 = sort(runif(1, 5, 9))
                  )

1 个答案:

答案 0 :(得分:2)

我认为这是你要做的,但如果不是,请纠正我。

我将pH值放在x轴上,而麦芽糖以毫克为单位放在y轴上。

我还添加了ggthemes包中的一个主题,这使得它很漂亮。您可以在我在代码注释中添加的链接中找到其他主题。

最后,我用coord_cartesian 限制了x轴(&lt; - 这就是我认为你正在寻找的,控制显示的范围)然后{{1在传奇上放置一个漂亮的标题。

接下来,我添加了一个带有scale_colour_discrete和轴标签的标题。 ggtitle有ggplot设置,只需在theme_wsj()控制台中输入theme_wsj()即可查看。它默认是隐藏轴标签,我不得不用R函数及其内部的位来覆盖它。

theme()是一个惊人的包。你可以在这里阅读所有相关内容:http://docs.ggplot2.org/current/

ggplot2