簡體   English   中英

帶有對數刻度的文本文件中帶有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()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM