2

次のデータをグラフ化しようとしています。

 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))
                  )
4

1 に答える 1

2

これがあなたがやろうとしていることだと思いますが、そうでない場合は修正してください。

X 軸に pH を、Y 軸にミリグラム単位のマルトースを入れました。

パッケージからテーマも追加したggthemesので、きれいになりました。コードのコメントに入れたリンクで見つけることができる他のテーマがあります。

最後に、x 軸をcoord_cartesian (<-- あなたが探していたものだと思います。表示される範囲を制御します) で制限しscale_colour_discrete凡例に見栄えの良いタイトルを付けました。

次にggtitle、軸ラベルを含むタイトルを追加しました。には、コンソールtheme_wsj()に入力するだけで表示できる ggplot 設定があります。デフォルトは軸ラベルを非表示にすることです。関数とその中のビットでそれをオーバーライドする必要がありました。theme_wsj()Rtheme()

ggplot2素晴らしいパッケージです。ここですべてを読むことができます:http://docs.ggplot2.org/current/

install.packages("ggthemes")
library(ggthemes)

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(1, 5, 9)),
                  ph2 = sort(runif(1, 5, 9)),
                  ph3 = sort(runif(1, 5, 9))
)

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, colour = team)) + 
  geom_line(size = 2) +
  coord_cartesian(xlim = c(5, 9)) + # this is how you limit the axis range displayed, you can do the y, too with ylim = c(0, 1)
  scale_colour_discrete(name = "Team") + 
  theme_wsj() + # find more themes here: https://github.com/jrnold/ggthemes
  ggtitle("pH by Team") +
  ylab("Maltose in Milligrams") +
  xlab("pH") +
  theme(axis.title = element_text(angle = 90, vjust = -0.075),
        axis.text = element_text(size = 20),
        legend.text = element_text(size = 15))

于 2013-09-27T00:44:43.873 に答える