首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用R语言从csv创建包含2列的下图

如何用R语言从csv创建包含2列的下图
EN

Stack Overflow用户
提问于 2014-02-06 18:38:07
回答 2查看 137关注 0票数 1

我有这个不带列名的csv文件:

代码语言:javascript
复制
0.21,2200
0.22,2161
0.23,2384
0.24,2059
0.25,1510
0.26,1343
0.27,1681
0.28,1501
0.29,938
0.30,686
0.31,598
0.32,399
0.33,385

并希望绘制类似的直方图(第一列中的值为x轴,第二列中的值为y轴),如下图所示。

我怎样才能做到这一点?感谢您的回复。

代码语言:javascript
复制
df<-read.csv(file="c-all-prop.csv",head=F,sep=",")
require(ggplot2)
qplot(x=df[,1],weight=df[,2],geom="histogram",xlab="Proportions of GD",ylab="No. of strains",binwidth = 1)

这段代码产生了一个奇怪的结果,如下图所示。我想知道为什么。

EN

回答 2

Stack Overflow用户

发布于 2014-02-06 19:11:38

下面是一个使用ggplot2的实现。我已经将您的数据放在一个csv中,读取它并通过dput共享它的结构。这应该也可以在没有列名的情况下工作。

代码语言:javascript
复制
df <- structure(list(V1 = c(0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 
                             0.28, 0.29, 0.3, 0.31, 0.32, 0.33), V2 = c(2200L, 2161L, 2384L, 
                                                                        2059L, 1510L, 1343L, 1681L, 1501L, 938L, 686L, 598L, 399L, 385L
                             )), .Names = c("V1", "V2"), class = "data.frame", row.names = c(NA, 
                                                                                             -13L))

require(ggplot2)
qplot(data=df,x=df[,1],weight=df[,2],geom="histogram",xlab="Proportions to whatever",ylab="No. of strains whatever")

使用qplot的binwidth选项进行试验,以获得直方图中所需的间距。

票数 0
EN

Stack Overflow用户

发布于 2014-02-22 15:25:30

这听起来像是你在问如何在R中绘制一个预先入库的数据集,例如,你有一个包含存储桶和计数的CSV文件,而不是底层分布的所有值。CRAN上的HistogramTools R包提供了PreBinnedHistogram函数,该函数接受一个存储桶向量和一个计数向量,并返回一个可以绘制或操作的普通R直方图对象。

您的图与描述和数据不匹配,但我认为下面的图真实地代表了您所描述的内容,而不是问题中包含的图:

代码语言:javascript
复制
require(HistogramTools)
counts<-c(2200,2161,2384,2059,1510,1343,1681,1501,938,686,598,399,385)
breaks<-(21:34)/100
plot(PreBinnedHistogram(breaks,counts))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21600448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档