如何在直方图中绘制列的标题?

时间:2016-02-15 12:22:25

标签: r plot

我有一个像这样的数据框

   >df
               X1       X2       X3       X4       X5       X6
2016-02-16 120.1142 124.8521 119.0029 119.2219 129.4915 116.5805
2016-02-17 122.1224 121.7848 123.8320 125.2890 125.6411 119.2096
2016-02-18 123.7764 126.1593 126.2566 120.5896 124.5153 123.2499
2016-02-19 119.5436 124.8069 118.0718 121.8618 123.3318 123.5650
2016-02-20 123.5873 126.0524 121.6285 118.9005 122.1214 123.5694

我想用列名作为标题绘制直方图。

我正在使用此代码

par(mfrow = c(2,3))
for(i in names(df)){
hist(df[[i]], main=colnames(df[[i]]),xlab="x")
}

但它没有显示任何内容。

> colnames(df[[i]])
NULL

如何使用列名称绘制直方图?

2 个答案:

答案 0 :(得分:4)

尝试mapply

mapply(hist,as.data.frame(df),main=colnames(df),xlab="x") 

enter image description here

答案 1 :(得分:2)

你在这里所做的不起作用:

par(mfrow = c(2,3))
for(i in names(df)){
hist(df[[i]], main=colnames(df[[i]]),xlab="x")
}

因为df[[i]]只是数据框中的向量,而向量没有合欢名。你已经在i得到了你想要的名字,为什么不呢:

hist(df[[i]], main=i, xlab="x")

最好不要调用你的循环变量i,因为这对大多数人来说都是一个数字。为清晰起见,请使用nname