python模块matplotlib绘图-饼图

excel 种经常使用根据数据绘制的相关的图表,本文展示在一个界面同时展示4种类型的图表的综合例子,一般步骤:

一、基础准备
1. 安装 Matplotlib
pip install matplotlib # 绘图模块用于绘图
pip install numpy # numpy 用于数据处理,可选但常用,可灵活造数

2. 导入 Matplotlib

Matplotlib 的核心是 pyplot 模块,通常简写为 plt:
import matplotlib.pyplot as plt
import numpy as np # 示例中用 numpy 生成测试数据

二、通用绘图流程

Matplotlib 绘图遵循:创建画布 》绘制图表 》 设置样式 》显示/保存的流程:

创建画布:plt.figure()(可选,默认自动创建)

绘制图表:plt.plot() / plt.bar() / plt.scatter() / plt.pie() 等绘图函数

设置样式:标题、坐标轴标签、图例、网格等

显示 / 保存:保存 plt.savefig() 或 显示 plt.show()

三、中文显示,负号,保存和显示问题解决

Matplotlib 默认不支持中文,需手动设置字体,一般手动设置:
plt.rcParams'font.sans-serif' = 'SimHei' # 黑体(Windows)
plt.rcParams'axes.unicode_minus' = False # 解决负号显示问题

保存plt.savefig() 需在 plt.show() 之前调用,否则会保存空白图;

四、常见图表示例-饼图

python 复制代码
# -*- coding: UTF-8 -*-
# ========================================
# @ProjectName: pythonws001
# @Filename: matplotlib_image.py
# @Copyright www.637hulian.com
# @Author: shenzhennba(Administrator)
# @Version 1.0
# @Since 2025/12/16 00:25
# ========================================
# 使用 Matplotlib 绘制各种常用图像
# ========================================
import matplotlib.pyplot as plt
import numpy as np
import datetime
import os


def matplotlib_image04(image_save_path):
    """饼图,适用于展示各部分占总体的比例"""
    # 1. 准备数据
    labels = ['苹果', '香蕉', '橙子', '葡萄']
    sizes = [30, 25, 20, 25]  # 比例和为100
    explode = (0.1, 0, 0, 0)  # 突出第一块(苹果)
    colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99']

    # 2. 绘制饼图
    plt.figure(figsize=(6, 6))  # 饼图建议用正方形画布
    plt.pie(
        sizes,
        explode=explode,
        labels=labels,
        colors=colors,
        autopct='%1.1f%%',  # 显示百分比(保留1位小数)
        shadow=True,  # 阴影
        startangle=90  # 起始角度(90度为垂直向上)
    )

    # 3. 样式设置
    plt.title('水果占比', fontsize=14)
    plt.axis('equal')  # 保证饼图是正圆形
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 黑体(Windows),解决显示中文乱码问题
    plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题
    file_name = datetime.datetime.now().strftime('%Y%m%d.%H%M%S') + '.png'
    file_name = os.path.join(image_save_path, file_name)
    # plt.savefig(file_name, bbox_inches='tight')  # 保存(bbox_inches 防止标签被裁剪)
    print(f'保存文件参见:{file_name}')
    plt.show()  # 显示图表(注意:savefig 要在 show 之前,否则会保存空白图)


def main():
    """ 主函数 """
    base_dir = r'F:\appData'
    matplotlib_image04(base_dir)


if __name__ == '__main__':
    main()

效果图如下:

相关推荐
在放️2 分钟前
Python 爬虫 · XML、xpath 与 lxml 模块基础
开发语言·爬虫·python
挨踢诗人8 分钟前
天猫(淘宝开放平台)集成金蝶云星空
python·数据集成
xyz_CDragon16 分钟前
把旧电脑变成AI算力:llama.cpp RPC 局域网分布式推理验证与实战
人工智能·分布式·python·rpc·llama
lulu121654407818 分钟前
GPT-5.6 vs Claude Fable 5/Mythos 深度技术对比:kindle/kepler/Levi三版本实测全解析
java·人工智能·python·gpt
喵叔哟20 分钟前
Week 3 --Day 2:LangGraph 进阶
python·langchain
装不满的克莱因瓶21 分钟前
自然语言处理中的词嵌入——从离散符号到语义向量空间
人工智能·python·深度学习·ai·自然语言处理·nlp
蜂蜜黄油呀土豆22 分钟前
Reflexion:让 Agent 用「言语」做强化学习
python·ai·大模型·reflexion
搬石头的马农24 分钟前
御三家旗舰模型混战下的企业选型策略:GPT-5.6、Fable 5、Gemini 3.5 Pro 怎么选? - 微元算力(weytoken)
java·人工智能·python·gpt·ai编程
小白学大数据34 分钟前
知网数据实战:爬虫 + 网络分析打造论文关键词图谱
爬虫·python·scrapy
SilentSamsara39 分钟前
Prompt 工程实战:System Prompt 设计、Few-shot 与 Chain-of-Thought
人工智能·python·青少年编程·prompt