Matplotlib饼图格式化问题:如何分类展示降雨概率
解决方案
首先需要先对降雨量数据进行二分类处理,将原有的连续/离散降雨量数值合并为「降雨(Yes)」和「不降雨(No)」两类,再基于分类结果统计占比并绘制饼图。具体步骤如下:
1. 生成降雨分类列
使用numpy.where快速判断每条数据的降雨量所属类别,这是高效的向量化处理方式,适合大数据量场景:
import numpy as np import pandas as pd import matplotlib.pyplot as plt # 新增分类列:降雨量>0标记为"降雨(Yes)",否则标记为"不降雨(No)" df['Rain_Category'] = np.where(df['Rainfall'] > 0, '降雨(Yes)', '不降雨(No)')
2. 绘制分类饼图
基于新生成的分类列统计数量,直接传入饼图函数即可生成两类占比的可视化:
# 统计两类的出现次数 category_counts = df['Rain_Category'].value_counts() # 绘制饼图 plt.pie(category_counts.values, labels=category_counts.index, autopct='%1.1f%%', startangle=90) # 设置起始角度,让分类展示更直观 plt.title('降雨概率分布') # 添加饼图标题 plt.axis('equal') # 强制饼图为正圆形,避免画布比例导致的变形 plt.show()
3. 按分类分组计算均值
如果需要按降雨分类计算其他列的均值,修改groupby的分组键为新生成的分类列即可:
# 按降雨分类分组,计算各列均值 category_mean = df.groupby('Rain_Category').mean() print(category_mean)
内容的提问来源于stack exchange,提问作者John.R
相关产品推荐
相关产品推荐

