R直方图使用百分比而不是粗略值添加标签
我想用hist来制作一个使用百分比的直方图 但是,我还想在每个直方图条的顶部放置一个标签,显示实际百分比 以下是我的代码和输出链接:R直方图使用百分比而不是粗略值添加标签,r,histogram,R,Histogram,我想用hist来制作一个使用百分比的直方图 但是,我还想在每个直方图条的顶部放置一个标签,显示实际百分比 以下是我的代码和输出链接: DataToPlot <- sapply(dataframe, as.numeric) hist(DataToPlot, xlab="dataframe",ylab="Calls", main="Weekly data", col="lightgreen",labels = TRUE, ylim=c(0, 12000)) 使用freq=TRUE选项: 使
DataToPlot <- sapply(dataframe, as.numeric)
hist(DataToPlot, xlab="dataframe",ylab="Calls", main="Weekly data", col="lightgreen",labels = TRUE, ylim=c(0, 12000))
使用freq=TRUE选项:
使用freq=TRUE选项:
添加此行值是您希望用作标签的列:
labs <- paste(round(DataToPlot$value), "%", sep="")
添加此行值是您希望用作标签的列:
labs <- paste(round(DataToPlot$value), "%", sep="")
您需要的是freq=FALSE选项@jkd搞错了。
注意,医生说
freq:逻辑;如果为TRUE,则直方图图形表示频率、结果的计数分量;如果为假,则绘制概率密度、成分密度,以便直方图的总面积为1。当且仅当断裂等距且未指定概率时,默认为TRUE
如果您只想使用基本图形,那么只需使用hist函数就可以了。您可以像这样手动添加百分比值
data(iris)
# store the histogram in 'h'
h <- hist(iris$Sepal.Length, xlab="dataframe", ylab="Calls", freq = FALSE,
main="Weekly data", col="lightgreen", labels = FALSE, ylim = c(0,0.5))
text(
x = (h$breaks[-1] + h$breaks[-length(h$breaks)])/2, # compute break center
y = h$density, # use density as y value
labels = paste(round((h$density/sum(h$density))*100, 2), "%"), # labels are (density/sum(density)) *100 for %
pos = 3) # pos = 3 means above the specified coordinates
这就产生了
请注意,我使用的数据来自iris数据集,因为您没有给出任何您想要的是freq=FALSE选项@jkd搞错了。
注意,医生说
freq:逻辑;如果为TRUE,则直方图图形表示频率、结果的计数分量;如果为假,则绘制概率密度、成分密度,以便直方图的总面积为1。当且仅当断裂等距且未指定概率时,默认为TRUE
如果您只想使用基本图形,那么只需使用hist函数就可以了。您可以像这样手动添加百分比值
data(iris)
# store the histogram in 'h'
h <- hist(iris$Sepal.Length, xlab="dataframe", ylab="Calls", freq = FALSE,
main="Weekly data", col="lightgreen", labels = FALSE, ylim = c(0,0.5))
text(
x = (h$breaks[-1] + h$breaks[-length(h$breaks)])/2, # compute break center
y = h$density, # use density as y value
labels = paste(round((h$density/sum(h$density))*100, 2), "%"), # labels are (density/sum(density)) *100 for %
pos = 3) # pos = 3 means above the specified coordinates
这就产生了
请注意,我使用的数据来自iris数据集,因为您没有给出任何好吧,我得到了完全相同的输出好吧,我得到了完全相同的输出得到了一个错误:DataToPlot$value中的错误:$operator对于原子向量无效got错误:DataToPlot$value中的错误:$operator对于原子向量无效没有问题。请注意,百分比值不是密度值乘以100。没问题。请注意,百分比值不是密度值乘以100。