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

如何用Python绘制指定类别(A=0)的单一直方图

绘制特定分组的单一直方图解决方案

没问题,你之前用hist(by=...)生成多组直方图,是因为它会按列A的所有唯一值自动分组绘制。要只画列A等于某个特定值(比如A=0)时列B的直方图,核心思路就是先筛选出对应的数据子集,再单独绘制,操作很简单!

步骤1:先构造你的数据集(方便直接测试)

先把你给出的两列数据转换成pandas的DataFrame:

import pandas as pd
import matplotlib.pyplot as plt

# 你的原始数据
column_a = [0,0,1,1,0,2,0,2,2,1,2,1]
column_b = [0.1,0.2,0.3,0.4,0.2,0.3,0.5,0.75,0.8,0.9,1.3,0.2]

# 构造DataFrame
df = pd.DataFrame({'A': column_a, 'B': column_b})

步骤2:筛选特定分组并绘制直方图

比如你要画A=0时B的直方图,先筛选出A==0的行,再对B列调用直方图方法即可:

方法一:用pandas快速绘制

# 筛选A=0对应的B列数据
subset_b = df[df['A'] == 0]['B']

# 绘制单一直方图
subset_b.hist(bins=5, edgecolor='black')
plt.title('Histogram of B when A=0')
plt.xlabel('Value of B')
plt.ylabel('Frequency')
plt.show()

方法二:用matplotlib自定义样式

如果需要更灵活的样式控制,比如添加网格、调整颜色,可以直接用matplotlib绘制:

subset_b = df[df['A'] == 0]['B']

plt.hist(subset_b, bins=5, edgecolor='black', color='#607c8e')
plt.title('Histogram of B when A=0')
plt.xlabel('Value of B')
plt.ylabel('Frequency')
plt.grid(axis='y', alpha=0.75)  # 可选:添加y轴网格线
plt.show()

关键说明

  • 核心逻辑是先过滤出目标分组的数据,而不是依赖hist(by=...)自动分组所有类别。
  • 要绘制其他分组(比如A=1或A=2),只需要把df['A'] == 0改成对应的条件即可,比如df['A'] == 1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:18:09