8

私は簡単なプロットを持っています:

#!/usr/bin/Rscript                                                                                    

png('plot.png')

y <- c(102, 258, 2314)                                                                         
x <- c(482563, 922167, 4462665)

plot(x,y)
dev.off()

R は、y 軸に 500、1000、1500 などを使用します。軸に科学表記法を使用して、下の図のように軸の上にy置く方法はあり* 10^3ますか?

ここに画像の説明を入力

4

3 に答える 3

11

同様の手法は、 sfsmiscパッケージeaxisの (拡張 / エンジニアリング軸)を使用することです。

それはこのように動作します:

library(sfsmisc)

x <- c(482563, 922167, 4462665)
y <- c(102, 258, 2314)

plot(x, y, xaxt="n", yaxt="n")

eaxis(1)  # x-axis
eaxis(2)  # y-axis

ここに画像の説明を入力

于 2014-01-23T03:05:39.133 に答える
3

軸にラベルを付ける方法は、使用するプロット システム (ベース、ggplot2、または格子) によって異なります。scalesパッケージの関数を使用して、軸番号をフォーマットできます。

library(scales)
x <- 10 ^ (1:10)
scientific_format(1)(x)
[1] "1e+01" "1e+02" "1e+03" "1e+04" "1e+05" "1e+06" "1e+07" "1e+08" "1e+09" "1e+10"

を使用した例を次に示しggplot2ます。

library(ggplot2)
dat <- data.frame(x  = c(102, 258, 2314),                                                                     
                  y  = c(482563, 922167, 4462665))

qplot(data=dat,x=x,y=y) + 
  scale_y_continuous(label=scientific_format(digits=1))+ 
  theme(axis.text.y =element_text(size=50))

ここに画像の説明を入力

編集OPには特定のニーズがあります。これを達成するためにここで使用したいくつかのアイデアを次に示します。

  1. 関数を使用して、プロット ラベルをカスタマイズできますaxis
  2. mtext外側のプロット領域にテキストを配置するために使用します
  3. 式を使用して、プロット数学機能を活用してください...

ここに画像の説明を入力

y <- c(102, 258, 2314)                                                                         
x <- c(482563, 922167, 4462665)
plot(x,y,ylab='',yaxt='n')
mtext(expression(10^3),adj=0,padj=-1,outer=FALSE)
axis(side=2,at=y,labels=round(y/1000,2))
于 2013-06-30T04:09:04.840 に答える
3

これはハックな方法ですが、何も問題はありません。

plot(x,y/1e3, ylab="y /10^3")
于 2013-06-30T04:07:23.843 に答える