You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何绘制二项式矩阵中1的频率直方图(X轴为矩阵列)

解决方案

hist(Infected)会把矩阵所有元素当成单一向量统计,自然无法体现列维度的信息。要实现按列展示1的频率,需要先按列计算1的频率,再用合适的绘图函数呈现:

步骤1:计算每列中1的频率

# 你的原矩阵生成代码
prevalence <- 0.01
Infected <- sapply(1:10, function(p) rbinom(500, 1, prevalence))

# 计算每列中1的频率(占该列总样本数的比例)
col_freq <- colSums(Infected) / nrow(Infected)
# 若需要统计1的个数而非频率,用这行替代:
# col_count <- colSums(Infected)

步骤2:绘制按列分布的频率图

由于X轴是离散的列编号,用barplot比hist更贴合需求:

barplot(col_freq,
        names.arg = 1:ncol(Infected),  # 设置X轴标签为列1到列10
        xlab = "矩阵列",
        ylab = "1的频率",
        main = "各列中1的频率分布")

如果坚持要用hist(虽不适合离散轴场景),可以将列编号与对应频率组合后绘制:

# 转换为数据框
freq_df <- data.frame(col = 1:ncol(Infected), freq = col_freq)
# 绘制直方图(以频率为统计对象,展示不同频率对应的列数量)
hist(freq_df$freq,
     breaks = seq(0, max(freq_df$freq)+0.001, by=0.001),
     xlab = "1的频率",
     ylab = "列的数量",
     main = "各列1的频率分布直方图")

内容的提问来源于stack exchange,提问作者Katy Baker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 00:12:10