微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R:如何在一张图表上绘制多个密度图,并从excel中提取列

如何解决R:如何在一张图表上绘制多个密度图,并从excel中提取列

总R /编程新手在这里。我正在尝试从Excel工作表中获取列数据(多列),为这些列中的每一个创建一个密度图,然后将它们绘制到一张图表上并使其看起来不错。

excel数据只是其中包含数值的列(colA,colB,colC等)(每列数据约2000个数据点)。我设法弄清楚如何绘制一列:

library(readxl)
setwd("directoryLocation")
dft <- read_excel("sample.xlsx",sheet="columns")
d <- density(dft$`colA`)
plot(d)

但是我对合并所有列不知所措。 任何有关如何进行(或更好的方法)的想法将不胜感激。 干杯!

解决方法

您将来一定要提供一个可复制的示例,这样我就可以肯定我在回答正确的问题,但是lattice库应该使您与众不同:

library(stats)
library(lattice)
densityplot( ~ height | voice.part,data = singer,layout = c(2,4),xlab = "Height (inches)",bw = 5)

enter image description here

,

感谢您的建议;点阵看起来是另一种很棒的方法!抱歉,不清楚,这是我正在尝试做的事情以及如何解决它:

  1. 数据(excel电子表格中的列...每列约2000行):
  • colA colB colC ...
  • 34.4 65.5 55.1 ...
  • 34.6 64.5 54.6 ...
  1. 我想做的是提取这些excel电子表格列中的数据,并为每列绘制一个密度图,但是使用相同的轴(所以一个图表,多个图)

  2. 这是我的工作方式:

注意:我意识到每列的第一个单元格都是“标题”,我可以使用

将数据框中的标题名称调用到每个新的绘图线中

对于第一个数据,先绘制(density(dataFrameName $ headerName))),然后对每个其他数据列先绘制(density(dataFrameName $ headerName))。

library(readxl)
setwd("pathToWorkingDir")

dft <- read_excel("excelSpreadsheet.xlsx",sheet="sheetName")

tiff("createPlotImage.tiff",height = 8,width = 8,units = 'in',res=300)
plot(density(dft$`colA`),panel.first = abline(h=0,col="black"),xlim = c(-60,-45),ylim =c(0,1.5),lwd=3,col='#FF0000',main = "",cex.axis = 1.4,ann=FALSE)
lines(density(dft$`colB`),col='#FF9900')
lines(density(dft$`colC`),col='#FFFF00')
legend('topleft',bty="n",c('colA','colB','colC'),ncol=1,col=c('#FF0000','#FF9900','#FFFF00','#66FF66'),text.width = 6,lwd = 3,cex = 1)

dev.off()

结果: plot of the code

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。