如何绘制Src_Mac_country列Top10国家出现占比的饼图?
绘制CSV数据中国家出现频率Top10的带占比饼图
需求说明
统计CSV数据中Src_Mac_country列各国家的出现频率,绘制带有占比的饼图,仅展示按出现次数降序排列的Top10国家。
完整实现代码
import pandas as pd import matplotlib.pyplot as plt # 读取CSV数据 df = pd.read_csv('Filepath') # 获取Top10国家的出现次数(默认降序排列) top10_counts = df['Src_Mac_country'].value_counts().head(10) # 绘制饼图 plt.figure(figsize=(8, 8)) wedges, texts, autotexts = plt.pie( top10_counts.values, labels=top10_counts.index, autopct='%1.1f%%', # 自动显示保留1位小数的占比 startangle=90, counterclock=False # 按降序顺时针排列扇区 ) # 优化图表显示 plt.title('Top10 Src_Mac_country 出现频率占比') plt.legend(wedges, top10_counts.index, loc="upper right", bbox_to_anchor=(1.3, 0.9)) plt.tight_layout() # 显示图表(如需保存可取消下方注释) plt.show() # plt.savefig('top10_country_pie.png', bbox_inches='tight')
关键代码解释
value_counts().head(10):直接提取出现次数最多的前10个国家,结果默认按降序排列autopct='%1.1f%%':自动在饼图扇区上标注百分比数值,格式为1位小数counterclock=False:让饼图从90度位置开始顺时针排布,符合常规阅读顺序bbox_to_anchor:调整图例位置,避免遮挡饼图主体
内容的提问来源于stack exchange,提问作者Beast
相关产品推荐
相关产品推荐

