我有6组数据坐标为(1,3)、(2,5)、(6,1)、(6,2)、(11,1)、(13、5),使用R语言绘制直方图。x轴直方图坐标区间为1-5、5-10、10-15。y轴数值为落在此区间的点的y值的平均值。怎么便携代码
时间: 2024-10-21 08:05:28 浏览: 23
Grib层次类型1
在R语言中,你可以使用`hist()`函数创建直方图,并结合`cut()`函数来划分x轴的区间,以及计算每个区间的平均值。以下是一个简单的步骤:
```r
# 首先加载需要的数据
data <- data.frame(x = c(1, 2, 6, 6, 11, 13), y = c(3, 5, 1, 2, 1, 5))
# 划分x轴区间并计算频率
bin_edges <- c(1:5, seq(5, 15, by=5)) # 定义x轴区间
binned_data <- cut(data$x, breaks = bin_edges) # 划分区间
# 对应的y值列表
y_values <- split(data$y, binned_data)
# 计算每个区间内的平均y值
average_y <- lapply(y_values, mean, na.rm = TRUE) # 使用lapply处理列表并计算平均值,na.rm = TRUE去掉缺失值的影响
# 绘制直方图
barplot(average_y, names.arg = bin_edges[2:length(bin_edges)], xlab = "X 轴区间", ylab = "平均Y值")
```
这段代码会生成一个直方图,x轴表示区间,每个柱子的高度代表对应区间的平均y值。如果你想要更精细地控制图形样式,可以添加更多的`ggplot2`或者其他绘图库的功能。
阅读全文