R语言直方图

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参数使用了两种颜色。这意味着这两种颜色会一直重复到条形的末端。

Change Bar Colors of the Histogram  in R Programming

删除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
)
Change Axis limits of Hist 7

更改直方图的箱体

让我们看看如何使用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)
)
Change Bin Width of the Histogram 8

创建带密度的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")

以下语句绘制了一条密度曲线

Add Density Curve to Histogram in R programming
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
)
Multiple Histograms in R Programming 11

使用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文件中给定数据的销售额的直方图。

Creating Histogram using CSV File