python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > matplotlib饼图

matplotlib实战之饼图绘制详解

作者:databook

饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表,这篇文章主要为大家详细介绍了如何使用Matplotlib绘制饼图,需要的小伙伴可以参考下

饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表。

在饼图中,每个扇形的弧长(以及圆心角和面积)大小,表示该种类占总体的比例,且这些扇形合在一起刚好是一个完全的圆形。

饼图最显著的功能在于表现“占比”。

习惯上,人们通过比较饼图扇形的大小来获得对数据的认知。

使用饼图时,须确认各个扇形的数据加起来等于100%;

且避免扇区超过5个,扇形的排布顺序,一般情况下,将最大的扇形放在12点钟方向。

1. 主要元素

饼图的主要元素包括:

2. 适用的场景

饼图适用的场景包括:

3. 不适用的场景

饼图不适用的场景包括:

4. 分析实战

本次用饼图统计展示 不同人口规模的城市数量 的统计情况。

4.1. 数据来源

数据来自国家统计局公开的城市概况数据,可从下面的网址下载:databook.top/nation/A0B

使用其中的 A0B01.csv 文件(分机构类型法人单位数)

fp = "d:/share/A0B01.csv"
df = pd.read_csv(fp)
df

4.2. 数据清理

最新的2022年数据缺失较多,所以选取2021年的数据进行分析。

data = df[df["sj"] == 2021]
data

第一条数据全部城市情况,统计需要去除,另外,指标的名称太长,统计前也可以调整下。

接着上面过滤后的数据继续数据清洗:

data = data.reset_index() # 重置索引
data = data.iloc[1:]  # 忽略第一条合计的数据
#调整指标名称,删除多余的文字
data["zbCN"] = data["zbCN"].str.replace("城市市辖区年末总", "")
data["zbCN"] = data["zbCN"].str.replace("地级及以上", "")
data

最后得到的数据有6条饼图一般来说数据不要超过5个6个也还行,再多就影响显示效果了。

4.3. 分析结果可视化

with plt.style.context("seaborn-v0_8"):
    fig = plt.figure()
    ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
    ax.pie(data["value"], autopct="%1.1f%%")
    ax.legend(
        data["zbCN"].tolist(),
        loc="center",
        bbox_to_anchor=(1, 0, 0.5, 1),
    )

从分析结果可看出,50万~200万人口的城市超过一半,是大多数的城市规模。

两端的情况(人口20万以下,或者400万以上)的城市占比最小。

到此这篇关于matplotlib实战之饼图绘制详解的文章就介绍到这了,更多相关matplotlib饼图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文