2016-11-10 39 views
0

我有数据保存在几千行的文本文件。每一行只有一个值。像这样Scatterplot与R从文本文件与日志规模

52312 
2 
3 
4 
5 
7 
9 
4 
5 
3 

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

我所用的数据与data<-read.table("data.txt")

读当我只使用plot(data)所有数据具有相同的y值,导致在一条线上,其中x值表示刚刚从数据给出的值。

然而,我想要的是,x值代表了linenumber和y值的实际数据。因此,对于上面的例子中我的价值观是(1,52312)(2,2)(3,3)(4,4)(5,5)(6,7)(7,9)(8,4)(9,5)(10,3)

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

对不起,很新的R

+0

是新的与R我不同意一开始是困难的。但是,你是否尝试从最终的功能发现/阅读?这个解决方案非常简单,但是如果我们只是发布答案 –

+0

,我会很乐意阅读它,但不知道要诚实地搜索什么。我从这里开始,但没有真正帮助:http://www.statmethods.net/graphs/scatterplot.html – CuriousFella

+0

@ joel.wilson因此,如果你能指出我正确的文档或一些有用的关键字,我真的欣赏它。 – CuriousFella

回答

0
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),可以帮助你从样本()运行这段代码每次重现相同的随机数。它使代码具有可重现性。 ii)在R控制台中键入?sample以获得文档。 3)因为你想要X轴是亚麻布 - 我使用“:”运算符创建它。 1:3 = 1,2,3。类似地,我使用1:nrow(df)创建了一个“id”索引,该索引将根据数据的维度创建。

四)日志,只是使用它简单:)。阅读更多关于剧情和它的参数

+0

酷!它几乎可以工作。我现在有'df = data.frame(a = c(data $ V1))'然后'plot(x = 1:nrow(df),y = log(df $ a),log =“y”)' ,但然后我得到警告'警告信息: xy.coords(x,y,xlabel,ylabel,log): 11978 y值<= 0从对数图中省略我想,因为我的大部分值实际上是浮动的分,范围从'0.0001'''.003'。你会如何建议我设定我的价值观的范围? – CuriousFella

+0

这是bcoz你的一些y值是负值。所以日志会返回警告。你可以忽略,如果你想 –

0

试试这个:

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() 

enter image description here

+0

这很漂亮。我还没有理解如何创建'data.frame'。我的数据将是你的y值。我该如何生成'df'? – CuriousFella