使用Matplotlib.pyplot基于Kaggle泰坦尼克数据集绘制年龄箱线图出现空白图的问题求助
解决Matplotlib绘制泰坦尼克年龄箱线图出现空白的问题
嘿,我明白你现在在专门啃Matplotlib,碰到箱线图空白的问题确实让人挠头!咱们一步步来排查并解决它:
最核心的原因:缺失值未处理
泰坦尼克数据集的age列存在大量缺失值(NaN),而Matplotlib的boxplot函数没办法直接处理包含NaN的数组,这就是你得到空白图的关键原因。
解决步骤:
第一步:清理缺失值
先把age列里的NaN值过滤掉,用Pandas的dropna()方法就能轻松搞定:# 清理年龄列的缺失值 clean_age = dataframe['age'].dropna()你可以先查一下缺失值的数量,确认这个问题:
print(f"年龄列缺失值数量:{dataframe['age'].isna().sum()}")第二步:用清理后的数据绘制箱线图
用处理好的clean_age来绘制,就能得到正常的箱线图了。完整的代码示例如下:import matplotlib.pyplot as plt import pandas as pd # 加载泰坦尼克数据集(假设你已经完成这一步) # dataframe = pd.read_csv('titanic.csv') # 清理缺失值 clean_age = dataframe['age'].dropna() # 绘制箱线图 plt.boxplot(clean_age) # 可以添加标题和坐标轴标签让图表更清晰 plt.title('Titanic Passenger Age Distribution') plt.ylabel('Age') plt.show()
其他可能的小细节
如果你是在Jupyter Notebook环境中运行代码,别忘了加上%matplotlib inline魔法命令,这样图表才能正常显示在单元格里:
%matplotlib inline import matplotlib.pyplot as plt
这样调整后,你应该就能看到正常的年龄箱线图啦!
内容的提问来源于stack exchange,提问作者user16416653
相关产品推荐
相关产品推荐

