一部の変数が相対的な変動をほとんど示さず、他の変数が大きな変動を示すデータ フレームがあります。たとえば、次のデータ フレームを考えてみましょう。
df <- data.frame(IDX = 1:10, V1 = runif(10) + 100000, V2 = runif(10))
次の内容で:
IDX V1 V2
1 1 100001.0 0.39601382
2 2 100000.1 0.76472032
3 3 100000.1 0.10183021
4 4 100000.2 0.12735142
5 5 100000.8 0.21488898
6 6 100000.1 0.92675265
7 7 100000.5 0.27987290
8 8 100000.6 0.69132304
9 9 100000.5 0.20719782
10 10 100000.8 0.02314787
両方の変数の絶対変動は類似しています (V1 では 0.10、V2 では 0.09)。しかし、それらの平均に対する相対変動を考慮すると、V1 の変動は非常に小さく、V2 の場合は逆になります。
> var(df$V1) / mean(df$V1)
[1] 1.082472e-06
> var(df$V2) / mean(df$V2)
[1] 0.2617366
問題は、両方の変数のドットプロットを作成しようとしたときに発生し、X スケールの制限を設定しようとしました。各変数に同じスケールを使用すると ( relation = 'same'
、既定の設定)、次の結果が得られます。
ここに、プロットの作成に使用されるコードがあります。
library(lattice)
library(reshape2)
df <- melt(df, id.vars = 'IDX')
# approach 1
pl <- dotplot(IDX ~ value | variable, df,
scales = list(x = list(relation = 'same')))
print(pl)
ご覧のとおり、V2 の値は非常に小さいため、両方のパネルに同じスケールを使用すると、V2 の値にばらつきがないように見えます。各パネルの X スケールを独立させると、次のようになります。
そして、ここに 2 番目のプロットを生成するコードがあります。
# approach 2
pl <- dotplot(IDX ~ value | variable, df,
scales = list(x = list(relation = 'free')))
print(pl)
問題は、左側のパネルの X スケールの範囲が 100000.2 から 100001.0 になり、実際にはそうではない場合でも、データが多くの変動があるように見えることです。
どういうわけか、左パネルが最初のプロットの左パネルのように見え、右パネルが2番目のプロットの右パネルのように見えるプロットを取得したいと思います。私の考えは、プロットされている変数の平均に基づいて X 範囲を定義することでした。たとえば、各パネルの X 制限を から0.9 * mean
に変更でき1.1 * mean
ます。しかし、複数の変数 (およびパネル) が存在する場合にそれを行う方法がわかりません。