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

DataFrame多组年度数据频率绘制及影视直方图故障排查

问题解答

一、具体故障修复:迪士尼影视类型分布直方图无图形问题

常见原因及修复方案

  1. 数据筛选错误
    确认是否正确排除了episode类型,筛选出目标数据:

    # 正确筛选movie和series子集
    df_movie = df[df['type'] == 'movie']
    df_series = df[df['type'] == 'series']
    

    打印len(df_movie)和len(df_series)验证数据是否非空,若为0则说明筛选条件有误。

  2. plt.hist参数使用不当
    必须指定要统计的数值型列(比如上映年份release_year),不能直接传入整个DataFrame子集:

    import matplotlib.pyplot as plt
    
    # 正确调用方式:指定统计列、设置分组区分参数
    plt.hist(df_movie['release_year'], bins=15, alpha=0.5, label='Movie')
    plt.hist(df_series['release_year'], bins=15, alpha=0.5, label='Series')
    # 补充可视化元素
    plt.xlabel('上映年份')
    plt.ylabel('数量')
    plt.title('迪士尼电影与剧集年度发行频率对比')
    plt.legend()
    plt.grid(axis='y', linestyle='--')
    plt.show()
    
  3. 数据类型异常
    检查统计列(如release_year)是否为数值类型,若为字符串需转换并清理空值:

    import pandas as pd
    df['release_year'] = pd.to_numeric(df['release_year'], errors='coerce')
    df = df.dropna(subset=['release_year'])
    

二、通用方法:基于DataFrame绘制多组年度频率分布图

标准步骤

  1. 数据预处理
    • 筛选出需要对比的分组数据
    • 确保统计列(如年度)为数值型,清理空值、异常值
  2. 绘图实现
    • 方式一:matplotlib原生实现分组直方图
      如上述故障修复中的代码,通过多次调用plt.hist分别绘制各组,用alpha(透明度)、label区分分组
    • 方式二:用seaborn简化分组绘图
      import seaborn as sns
      # 先筛选目标类型
      df_filtered = df[df['type'].isin(['movie', 'series'])]
      sns.histplot(data=df_filtered, x='release_year', hue='type', bins=15, alpha=0.5)
      plt.title('年度发行频率按类型对比')
      plt.show()
      
  3. 可视化优化
    根据数据分布调整bins数量,添加坐标轴标签、标题、图例,按需开启网格提升可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 22:27:01