1

Metrics私は文献調査からのデータセットを持っています。そこでは、動物のグループの特定のパラメーター ( ) に対する pH の影響を調べました。実験はさまざまな時間スケールで行われるため、応答率を時間で割りました。

これにより、1 前後の差が非常に小さくなり (1 未満の場合は負の効果があり、1 より大きい場合は正の効果があります)、これは依然として興味深く重要です (実際の値は時間で割られるため)。問題は、一部の値が非常に低いか非常に高く、1 に近い差が見えないことです。

ここに画像の説明を入力

値は 1 に近いため、y 軸スケールの対数変換は役に立ちません。1 に近い差を視覚的かつ直感的に表示できるように、y 軸のスケールを変換するにはどうすればよいですか? ggplot2(読者があまり考えずに違いを検出できること。値を最小値に標準化し、10000 を掛けて log10 スケールを取ることはできますが、これでは理解できる違いにはなりません。)

df <- structure(list(Study = c(1, 1, 2, 2, 3), pH_control = c(8.06, 
8.06, 8.01, 8.01, 7.99), pH_treatment = c(7.86, 7.75, 7.8, 7.8, 
7.45), time = c(120, 120, 60, 150, 140), Metrics = structure(c(3L, 
1L, 2L, 3L, 1L), .Label = c("Growth", "Metabolism", "Survival"
), class = "factor"), RR_per_time_unit = c(0.9998, 1.001, 1.002, 
0.98, 0.9), CI.max = c(1, 1.003, 1.00003, 0.9999, 0.92), CI.min = c(0.9996, 
0.9999, 1.004, 0.9789, 0.89), pH_diff = c(0.2, 0.31, 0.21, 0.21, 
0.54)), .Names = c("Study", "pH_control", "pH_treatment", "time", 
"Metrics", "RR_per_time_unit", "CI.max", "CI.min", "pH_diff"), row.names = c(NA, 
-5L), class = "data.frame")

df$pH_diff <- df$pH_control - df$pH_treatment

library(ggplot2)

ggplot(df, aes(y = RR_per_time_unit, x = pH_diff, ymin = CI.min, ymax = CI.max)) + 
geom_pointrange(aes(color = Metrics)) + geom_hline(aes(yintercept = 1)) + coord_trans(y = "log10")
4

0 に答える 0