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

基于Pandas开发按城市分组的多柱状图数组技术问询

Pandas实现按城市分组的多柱状图(工作日×时段组合X轴)

没问题,我帮你把之前两次尝试的功能结合起来——给每个城市生成独立的柱状图,X轴用7个工作日×3个时段的21种组合,Y轴严格锁定70-210的计数值范围。下面是完整的可运行方案:

步骤1:准备示例数据(可替换为你的真实数据)

首先构造一个符合需求的数据集,包含城市、工作日、时段和计数值四个字段:

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

# 构造基础维度
cities = ["北京", "上海", "广州"]
weekdays = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
time_slots = ["早高峰", "午间", "晚高峰"]

# 生成示例数据
data = []
for city in cities:
    for day in weekdays:
        for slot in time_slots:
            # 生成70-210之间的随机计数值
            count = np.random.randint(70, 211)
            data.append({"城市": city, "工作日": day, "时段": slot, "计数值": count})

df = pd.DataFrame(data)

步骤2:数据预处理(合并X轴标签)

把工作日和时段合并成一个新字段,作为每个柱状条的X轴标签,比如周一-早高峰:

# 合并工作日和时段为X轴标签
df["X轴标签"] = df["工作日"] + "-" + df["时段"]

# 确保X轴按工作日+时段的顺序排列(避免乱序)
# 先定义固定顺序,再设置为分类类型
ordered_labels = [f"{day}-{slot}" for day in weekdays for slot in time_slots]
df["X轴标签"] = pd.Categorical(df["X轴标签"], categories=ordered_labels, ordered=True)

步骤3:按城市分组生成图表数组

遍历每个城市的数据,为每个城市单独绘制柱状图,同时设置Y轴范围和X轴样式:

# 设置图表整体风格
plt.style.use("seaborn-v0_8")

# 按城市分组循环绘图
for city, group_df in df.groupby("城市"):
    # 创建新的图表对象
    fig, ax = plt.subplots(figsize=(12, 6))
    
    # 绘制柱状图
    ax.bar(group_df["X轴标签"], group_df["计数值"], color="#2ecc71")
    
    # 设置Y轴范围为70-210
    ax.set_ylim(70, 210)
    
    # 设置图表标题和轴标签
    ax.set_title(f"{city} 各工作日时段计数值分布", fontsize=14, pad=20)
    ax.set_xlabel("工作日-时段组合", fontsize=12)
    ax.set_ylabel("计数值", fontsize=12)
    
    # 旋转X轴标签,避免重叠
    plt.xticks(rotation=45, ha="right")
    
    # 调整布局,防止标签被截断
    plt.tight_layout()
    
    # 显示图表(如果要保存可以用plt.savefig(f"{city}_柱状图.png"))
    plt.show()

关键功能说明

  • X轴组合逻辑:通过分类类型pd.Categorical强制X轴按工作日+时段的固定顺序排列,保证21个柱状条的顺序正确。
  • Y轴范围锁定:用ax.set_ylim(70, 210)严格限制Y轴显示区间,符合你的需求。
  • 按城市生成独立图表:利用groupby遍历每个城市的子数据集,为每个城市创建单独的图表对象,实现“图表数组”的效果。
  • 样式优化:旋转X轴标签、调整图表尺寸、设置配色,提升图表可读性。

如果你的真实数据字段名和示例不同,只需要替换代码中对应的字段(比如把城市换成city,计数值换成count)即可轻松适配~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:58:03