来自具有对数刻度的文本文件的 R 散点图

Scatterplot with R from text file with log scale

我将数据保存在一个几千行的文本文件中。每行只有一个值。像这样

52312
2
3
4
5
7
9
4
5
3

第一个值总是比所有其他值大约大 10.000 倍。

我可以用 data<-read.table("data.txt")

读入数据

当我只使用 plot(data) 时,所有数据都具有相同的 y 值,从而形成一条线,其中 x 值仅代表数据给出的值。

然而,我想要的是 x 值代表行号,y 值代表实际数据。因此,对于上面的示例,我的值将是 (1,52312)(2,2)(3,3)(4,4)(5,5)(6,7)(7,9) , (8,4), (9,5), (10,3).

此外,由于第一个值远高于所有其他值,我想对 y 轴使用对数刻度。

抱歉,对 R 很陌生。

set.seed(1000)    
df = data.frame(a=c(9999999,sample(2:78,77,replace = F)))
plot(x=1:nrow(df), y=log(df$a))

i) set.seed(1000) 帮助您在每次 运行 这段代码时从 sample() 中重现相同的随机数。它使代码可重现。

ii) 在 R 控制台中输入 ?sample 以获取文档。 iii) 由于您希望 x 轴为行号 - 我使用“:”运算符创建它。 1:3 = 1,2,3。类似地,我使用 1:nrow(df) 创建了一个 "id" 索引,它将根据您的数据维度创建。

iv) 对于日志,只需简单地使用它:)。阅读有关 ?plot 及其参数的更多信息

试试这个:

df
    x     y
1   1 52312
2   2     2
3   3     3
4   4     4
5   5     5
6   6     7
7   7     9
8   8     4
9   9     5
10 10     3

library(ggplot2)
ggplot(df, aes(x, y)) + geom_point(size=2) + scale_y_log10()