やりたいこと
巨大な数値のグラフを生成した際に以下のように出力されるグラフの指数表記()を指数表記ではない形で記載したい(5000000など)。
環境
# R --version R version 3.3.3 (2017-03-06) -- "Another Canoe" Copyright (C) 2017 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit)
やり方
y軸の目盛りを消すためにyaxtをnとしてplotを行い
> plot(data_x,data_y,ylim=c(0,5200000),yaxt='n')
以下でplotコマンドで生成された目盛り情報を取得
> y_myaxt <- par()$yaxp
同値を以下のように加工して
> y_seq <- seq(y_myaxt[1], y_myaxt[2], by=(y_myaxt[2]-y_myaxt[1])/y_myaxt[3])
以下で目盛り情報を付与する。
> axis(2, y_seq, labels=format(y_seq, sientific=F))
それで生成されるグラフは以下。指数表記ではない数値でグラフが表現されている。
以下、補足です。
補足
目盛り情報の中身を見ると、最小値,最大値,目盛りの数 が格納されています。
> y_myaxt [1] 0e+00 5e+06 5e+00
よってこの値をベースにして目盛りの値を再現しました。
axisの中に「2」という数値がありますが、これは(1:下,2:左,3:上,4:右)
を表しているので今回は左側にy軸目盛りを付与するためにそのひょうにしています。
また、y軸の目盛りを最初に消さずに目盛りを付与すると以下のようになるので
表示される位置含めて再現できていることがわかります。
以上、ご参考になれば幸いです。