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

如何制作展示数据集列中0、1及NA计数的直方图?

针对含0、1、NA列的计数可视化方案

因为你要展示的是离散类别(0、1、NA)的计数,用条形图比直方图更贴合需求(直方图多用于连续数据的分布展示),以下是R和Python两种常用工具的实现方法:

R 实现(ggplot2)

核心是把NA转为显式的因子类别,避免绘图时被忽略:

library(ggplot2)

# 模拟示例数据(替换成你的数据集即可)
set.seed(123)
df <- data.frame(target_col = sample(c(0, 1, NA), 100, replace = TRUE))

# 将目标列转为包含NA的因子
df$target_cat <- factor(df$target_col, levels = c(0, 1, NA), labels = c("0", "1", "NA"))

# 绘制条形图
ggplot(df, aes(x = target_cat)) +
  geom_bar(fill = "#2E86AB") +
  labs(x = "值", y = "计数", title = "0、1、NA的计数分布") +
  theme_bw()

Python 实现(pandas + matplotlib)

通过value_counts(dropna=False)直接统计NA的数量,再调整展示顺序:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# 模拟示例数据(替换成你的数据集)
np.random.seed(123)
df = pd.DataFrame({'target_col': np.random.choice([0, 1, np.nan], 100)})

# 统计所有类别(含NA)的计数,并调整顺序
counts = df['target_col'].value_counts(dropna=False).reindex([0, 1, np.nan])
counts.index = ['0', '1', 'NA']

# 绘制条形图
counts.plot(kind='bar', color="#2E86AB")
plt.xlabel('值')
plt.ylabel('计数')
plt.title('0、1、NA的计数分布')
plt.xticks(rotation=0)
plt.tight_layout()
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 15:50:17