R 适当密度绘图

R 适当密度绘图,r,plot,R,Plot,我有3列数据。列中数据范围约为00727 至102989 这就是它的样子: 我的代码 MyData <- read.csv2(file="C:/Users/Sysop/Desktop/Koncentracija.csv",header=T,sep=";") MyData Data_1<-MyData$Sul311 Data_2<-MyData$Sul322 Data_3<-MyData$Sul333 Data_1_density<- density(Data_

我有3列数据。列中数据范围约为00727 至102989

这就是它的样子:

我的代码

MyData <- read.csv2(file="C:/Users/Sysop/Desktop/Koncentracija.csv",header=T,sep=";")
MyData

Data_1<-MyData$Sul311
Data_2<-MyData$Sul322
Data_3<-MyData$Sul333

Data_1_density<- density(Data_1,na.rm = TRUE)
Data_2_density<- density(Data_2,na.rm = TRUE)
Data_3_density<- density(Data_3,na.rm = TRUE)

xlim <- range(Data_1_density$x,Data_2_density$x,Data_3_density$x, na.rm = TRUE)
ylim <- range(Data_1_density$y, Data_2_density$y, Data_3_density$y, na.rm = TRUE)

Col_1 <- rgb(1,0,0,0.4)
Col_2 <- rgb(0,0,1,0.4)
Col_3 <- rgb(0,1,0,0.4)

plot(Data_1_density, xlim = xlim, ylim = ylim, xlab = 'Zn concentracion, mg/l',main = 'Distribution of data', panel.first = grid(nx = 10, ny = 10))


polygon(Data_1_density, density = -1, col = Col_1)
polygon(Data_2_density, density = -1, col = Col_2)
polygon(Data_3_density, density = -1, col = Col_3)

legend('topright',c('distribution 1 ','distribution 2','distribution 3'),cex=1.0, fill = c(Col_1, Col_2, Col_3), bty = 'n',border = NA)

MyData您可以使用from参数定义起始值或“第一个值”:

density(x, na.rm=T, from=min(x, na.rm=T))

例如

你有一些是零的还是非常接近的?核密度是一个平滑估计值。是的,有些值在0,05到0,6之间。我更新了我的问题。感谢您的回复,但是当我更改行时:Data\u 1\u density因为您还应该在min函数中添加na.rm。我编辑了我以前的postWell,它似乎起作用了,但后来我的情节被剪成了负值。这就是它的样子:这是正常的,因为你不再允许对低于你的最小值的值估计密度。如果你的向量中没有负值,你的曲线图将被切割成负值。我错过了什么吗?一切都很好,只是我是R的新手。我认为我的值应该在最小值和最大值之间绘制。我不喜欢它如何削减这些负值。也许有办法隐藏负数部分,因为现在正数值中有很多未绘制的空间。