R语言中的直方图对于可视化用户指定的箱体(范围或断点)中组织起来的统计信息非常有用。虽然它看起来像条形图,但直方图显示的是等间隔的数据。
让我们通过一个例子来看看在这个编程语言中如何创建直方图、删除其坐标轴、格式化其颜色、添加标签、添加密度曲线以及绘制多个直方图。
R直方图语法
在这个编程语言中创建直方图的语法是
hist(x, col = NULL, main = NULL, xlab = xname, ylab)
其背后用于制作直方图的复杂语法是
hist(x, breaks = "Sturges", freq = NULL, probability = !freq,
xlim = range(breaks), ylim = NULL, col = NULL, angle = 45,
include.lowest = TRUE, right = TRUE, density = NULL,
main = NULL, xlab = xname, ylab, border = NULL,
axes = TRUE, plot = TRUE, labels = FALSE,
nclass = NULL, warn.unused = TRUE,..)
在我们开始举例之前,让我们看看我们将用于此直方图示例的数据。airquality是RStudio提供的数据集。
R语言直方图的返回值
一般来说,在我们开始创建它之前,让我们看看hist如何分割数据。直方图返回频率(计数)、密度、箱体宽度(断点)值和图形类型。在本例中,我们展示了如何获取相关信息。
airquality return_Value <- hist(airquality$Temp) return_Value
> return_Value <- hist(airquality$Temp)
> return_Value
$breaks
[1] 55 60 65 70 75 80 85 90 95 100
$counts
[1] 8 10 15 19 33 34 20 12 2
$density
[1] 0.010457516 0.013071895 0.019607843 0.024836601 0.043137255
[6] 0.044444444 0.026143791 0.015686275 0.002614379
$mids
[1] 57.5 62.5 67.5 72.5 77.5 82.5 87.5 92.5 97.5
$xname
[1] "airquality$Temp"
$equidist
[1] TRUE
attr(,"class")
[1] "histogram"
在R语言中创建直方图
在本例中,我们使用Studio的airquality数据集创建直方图。如果您需要从外部文件导入数据,请参考R读取CSV文章了解CSV文件导入。此外,请参考R编程中的条形图文章。
airquality hist(airquality$Temp)
airquality数据集返回一个List作为输出。因此,我们使用$从List中提取数据。
hist(airquality$Temp)
为R语言直方图指定名称
在本例中,我们使用main、xlab和ylab来指定名称、X轴和Y轴。
- main:您可以更改或提供标题。
- xlab:请指定 X 轴的标签。
- ylab:请指定Y轴的标签。
- las:用于更改Y轴值的方向。
# Changing Axis Names
airquality
hist(airquality$Temp,
main = "Example",
xlab = "Temperature",
ylab = "Temperature Frequency",
las = 1
)
更改直方图的颜色
在本例中,我们使用col参数更改颜色。
- col:请指定您想用于直方图的颜色。在控制台中输入colors()以获取R编程中可用颜色的列表。
# Changing Colors
hist(airquality$Temp,
main = "Example",
xlab = "Temperature",
ylab = "Frequency",
las = 1,
col = c("skyblue", "chocolate2")
)
从上面的代码片段中,您可以看到我们为col参数使用了两种颜色。这意味着这两种颜色会一直重复到条形的末端。

删除R中直方图的坐标轴并添加标签
在本例中,我们使用axes、ann和labels参数删除X轴、Y轴以及如何为Studio直方图中的每个条形分配标签。
- axes:这是一个布尔参数。如果为TRUE,则绘制坐标轴。
- labels:这是一个布尔参数。如果为TRUE,则在每个条形的顶部返回其值。
- ann:这是一个布尔参数。如果为FALSE,则从绘图区域删除注释,包括坐标轴名称。
# Removing Axis Labels
airquality
return_Value <- hist(airquality$Temp)
return_Value
hist(airquality$Temp,
axes = FALSE,
ann = FALSE,
labels = TRUE,
ylim = c(0, 35),
col = c("skyblue", "chocolate2")
)

更改Studio中直方图的坐标轴限制
让我们使用density、xlim和ylim参数更改默认坐标轴值和条形密度。它们是density、xlim和ylim。
- xlim:此参数可以帮助您指定X轴的限制。
- ylim:此参数可以帮助您指定Y轴限制。在本例中,我们将默认的y轴值(0, 35)更改为(0, 40)。
- density:请指定阴影线的密度(每英寸线数)。默认情况下,它是NULL,表示没有阴影线。
# Changing Axis Values
airquality
return_Value <- hist(airquality$Temp)
return_Value
hist(airquality$Temp,
main = "Example",
xlab = "Temperature",
ylab = "Frequency",
las = 1,
col = c("skyblue", "chocolate2"),
xlim = c(55, 100),
ylim = c(0, 40),
density = 80
)

更改直方图的箱体
让我们看看如何使用breaks参数更改R直方图的箱体大小。
- 您可以使用一个值向量来指定单元格之间的断点。
- 您可以使用一个数字来指定它需要返回的单元格数量。例如,breaks = 20 表示返回20个条形。
- 您可以使用一个返回断点向量的函数。
# Changing Bin width
airquality
return_Value <- hist(airquality$Temp)
return_Value
hist(airquality$Temp,
breaks = 20,
main = "Sample",
xlab = "Temperature",
ylab = "Frequency",
las = 1,
col = c("skyblue", "chocolate2"),
labels = TRUE,
ylim = c(0, 25)
)

创建带密度的R直方图
频率计数向我们展示了每个箱体中的数据点数量。在实际应用中,我们比基于频率的更关心密度,因为密度可以给出概率密度。
在本例中,我们创建了一个针对密度的图,为了实现这一点,我们将freq参数设置为FALSE。
# Density Values
airquality
return_Value <- hist(airquality$Temp)
return_Value
hist(airquality$Temp,
freq = FALSE,
main = "Example",
xlab = "Temperature",
ylab = "Density",
las = 1,
col = c("skyblue", "chocolate2")
)
添加密度曲线
在本例中,我们使用lines函数在Studio中向直方图添加密度图或曲线。
# Add Density Curve
airquality
hist(airquality$Temp,
freq = FALSE,
main = "Example",
xlab = "Temperature",
ylab = "Density",
las = 1,
col = c("skyblue", "chocolate2")
)
lines(density(airquality$Temp), lwd = 4, col = "red")
以下语句绘制了一条密度曲线

lines(density(airquality$Temp), lwd = 4, col = "red")
提示:lwd参数更改线的粗细。
添加多个直方图
在本例中,我们将多个直方图添加到绘图区域。
hist(airquality$Temp[airquality$Month == 7],
main = "Multiple",
xlab = "Temperature",
ylab = "Frequency",
las = 1,
breaks = 20,
col = "skyblue",
labels = T
)
# Drawing for all the temperatures, where Month Number = 8
hist(airquality$Temp[airquality$Month == 8],
add = TRUE,
col = "chocolate2",
breaks = 20,
labels = T
)

使用CSV文件创建直方图
让我们看看如何使用外部数据在Rstudio中创建直方图。为此,我们使用read.csv函数导入CSV文件的数据。请参考R读取CSV文章。
# CSV File
employee <- read.csv("Products.csv", TRUE, sep = ",",
na.strings = TRUE)
employee$SalesAmount
hist(employee$SalesAmount,
main = "Sales",
xlab = "Sale Amount",
ylab = "Sales Frequency",
las = 1,
col = "skyblue"
)
上面的代码片段计算了CSV文件中给定数据的销售额的直方图。
