来自具有对数刻度的文本文件的 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()
我将数据保存在一个几千行的文本文件中。每行只有一个值。像这样
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()