如何在 r 中创建双对数图
双对数图是在 x 轴和 y 轴上都使用对数刻度的图。
当两个变量之间的真实关系遵循某种类型的幂律时,这种类型的图对于可视化两个变量非常有用。
本教程介绍如何使用 R 基础和ggplot2数据可视化包在 R 中创建双对数图。
方法 1:在 Base R 中创建双对数图
假设我们在 R 中有以下数据集:
#createdata df <- data. frame (x=3:22, y=c(3, 4, 5, 7, 9, 13, 15, 19, 23, 24, 29, 38, 40, 50, 56, 59, 70, 89, 104, 130)) #create scatterplot of x vs. y plot(df$x, df$y, main=' Raw Data ')
很明显,变量x和y之间的关系遵循幂律。
以下代码显示了如何在基本 R 中为这两个变量创建双对数图:
#create log-log plot of x vs. y plot( log (df$x), log (df$y), main=' Log-Log Plot ')
请注意,与上图相比,log(x) 和 log(y) 之间的关系更加线性。
方法 2:在 ggplot2 中创建双对数图
以下代码展示了如何使用 ggplot2 为完全相同的数据集创建双对数图:
library (ggplot2) #create data df <- data. frame (x=3:22, y=c(3, 4, 5, 7, 9, 13, 15, 19, 23, 24, 29, 38, 40, 50, 56, 59, 70, 89, 104, 130)) #define new data frame df_log <- data. frame (x= log (df$x), y= log (df$y)) #create scatterplot using ggplot2 ggplot(df_log, aes (x=x, y=y)) + geom_point()
随意自定义标题、轴标签和主题,使情节更加美观:
ggplot(df_log, aes (x=x, y=y)) +
geom_point() +
labs(title=' Log-Log Plot ', x=' Log(x) ', y=' Log(y) ') +
theme_minimal()