在 R 中的直方图条形顶部添加计数和百分比标签
直方图表示分隔成范围的指定变量的值的频率或偶然性。它将值分组为连续范围。直方图的每个条形都用于表示高度,即该特定范围内存在的值的数量。
基础 R 中的 hist() 方法用于显示给定数据值的直方图。它将数据值的向量作为输入,并输出相应的直方图。
Syntax:
hist ( x , labels)
Parameter :
- x – The set of data points to plot
- labels – By default, FALSE. If true, it is used to denote a set of counts on the top of bars. It can also take a function , a character or numeric vector .
让我们首先创建一个常规直方图,以便差异明显。
例子:
R
# setting the seed value
set.seed(67832)
# define x values using the
# rnorm method
xpos <- rnorm(50)
# plotting the histogram
hist(xpos , ylim=c(0,20))
R
# setting the seed value
set.seed(67832)
# define x values using the
# rnorm method
xpos <- rnorm(50)
# plotting the histogram
hist(xpos , labels = TRUE, ylim=c(0,20))
R
# setting the seed value
set.seed(67832)
# define x values using the rnorm method
xpos <- rnorm(50)
# computing length of x labels
len <- length(xpos)
# drawing a histogram without labels
hist_init <- hist(xpos, plot = FALSE)
# round the percentage to two places
rounded <- round(hist_init$counts / len * 100, 2)
# drawing a histogram
# adding % symbol in the value
hist(xpos,
labels = paste0(rounded , "%"), ylim=c(0,20))
输出
为了计算每个范围中遇到的值的数量,可以将标签属性设置为 TRUE。
句法:
hist(…, labels=TRUE,..)
例子:
电阻
# setting the seed value
set.seed(67832)
# define x values using the
# rnorm method
xpos <- rnorm(50)
# plotting the histogram
hist(xpos , labels = TRUE, ylim=c(0,20))
输出
可以使用数学函数计算百分比。最初,没有任何标签的直方图存储在一个变量中。可以使用提取的直方图变量的counts属性访问其计数。这将返回一个整数向量,每个值除以输入数据向量的长度。这些值乘以 100 以变成十进制值。
可以使用 R 编程语言中的 round() 方法将十进制值四舍五入到特定位数。
句法:
round(num , digits)
paste0() 方法可用于将值连接在一起并将“%”符号附加到相应的值。在此方法中,分隔符默认为空字符串。
句法:
paste0(val , “%”)
例子:
电阻
# setting the seed value
set.seed(67832)
# define x values using the rnorm method
xpos <- rnorm(50)
# computing length of x labels
len <- length(xpos)
# drawing a histogram without labels
hist_init <- hist(xpos, plot = FALSE)
# round the percentage to two places
rounded <- round(hist_init$counts / len * 100, 2)
# drawing a histogram
# adding % symbol in the value
hist(xpos,
labels = paste0(rounded , "%"), ylim=c(0,20))
输出