当前位置: 首页 > news >正文

Python之matplotlib 基础五:绘制饼状统计图

请添加图片描述
代码:

import csv
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from collections import Counterimport matplotlib
matplotlib.use('TkAgg')  # 设置后端为 TkAgg,使得程序可以在 Tkinter 窗口中显示
# 使用xkcd风格,使得图形更有漫画风格
# plt.xkcd()
# 设置支持 CJK 字符的字体(例如:微软雅黑),保证图形中的中文能够正确显示
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'# plt.style.use('ggplot')
plt.style.use("fivethirtyeight")slices = [59219, 55466, 47544, 36443, 35917]
labels = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
explode = [0, 0, 0, 0.1, 0.2]plt.pie(slices, labels=labels, explode=explode, shadow=True,startangle=90, autopct='%1.1f%%',wedgeprops={'edgecolor': 'black'})plt.title("饼状图 Pie Chart")
plt.tight_layout()
plt.savefig("饼状图")
plt.show()

Matplotlib --Pie Chart

这段代码使用了 Python 的 Matplotlib 库来绘制一个 饼状图 (Pie Chart),并且设置了自定义的样式、字体支持和其他图形特性。

1. 导入必要的库

import csv
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from collections import Counter
  • csv:用于处理 CSV 文件的模块,虽然在这段代码中并未使用,但一般用于读取和写入 CSV 文件。
  • matplotlib.pyplot:Matplotlib 库的一个子模块,提供绘制图形(如饼状图、折线图等)的函数。
  • numpy:用于科学计算和处理数组,虽然没有直接使用在这段代码中,但通常用于数据处理。
  • pandas:用于数据分析和处理,通常用于操作 DataFrame 类型的数据。
  • collections.Counter:用于计数的工具,通常用于计算元素出现的频率。

2. 设置 Matplotlib 后端和字体

import matplotlib
matplotlib.use('TkAgg')  # 设置后端为 TkAgg,使得程序可以在 Tkinter 窗口中显示
  • matplotlib.use('TkAgg'):设置 Matplotlib 使用 TkAgg 后端渲染图形,这样图形可以在 Tkinter 窗口中显示出来。如果不设置此项,可能无法在某些环境下显示图形(尤其是在某些操作系统或 IDE 中)。
# 设置支持 CJK 字符的字体(例如:微软雅黑),保证图形中的中文能够正确显示
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
  • matplotlib.rcParams['font.family'] = 'Microsoft YaHei':设置图表中文字的字体为 “Microsoft YaHei”,这是为了支持 CJK 字符(如中文)的显示。如果不设置字体,中文字符可能会显示为乱码。
plt.style.use("fivethirtyeight")
  • plt.style.use("fivethirtyeight"):选择一个预设的 Matplotlib 风格,这里选择的是 fivethirtyeight 风格,它使图形呈现出类似 “FiveThirtyEight” 网站风格的外观(简洁、现代的设计)。

3. 饼状图数据和绘制设置

slices = [59219, 55466, 47544, 36443, 35917]
labels = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
explode = [0, 0, 0, 0.1, 0.2]
  • slices:包含了饼状图的每个部分的大小,表示每种技术的使用人数或比例。
  • labels:这些是饼状图各个部分的标签(即技术名称)。
  • explode用来设置各个部分的突出效果。这里将 PythonJava 的部分设置为突出显示,0.10.2 分别表示突出显示的程度。
plt.pie(slices, labels=labels, explode=explode, shadow=True,startangle=90, autopct='%1.1f%%',wedgeprops={'edgecolor': 'black'})
  • plt.pie():这个函数用于绘制饼状图,接受多个参数。

    • slices:各部分的大小。
    • labels:各部分的标签。
    • explode:突出显示部分的设置。
    • shadow=True:给饼状图添加阴影,使其更具立体感。
    • startangle=90:饼状图从 90 度角开始绘制(逆时针方向)。
    • autopct='%1.1f%%':自动显示每个部分的百分比,保留 1 位小数。
    • wedgeprops={'edgecolor': 'black'}:设置每个部分的边框颜色为黑色,使饼状图的每个区域更有分隔感。

4. 设置标题与布局

plt.title("饼状图 Pie Chart")
  • plt.title("饼状图 Pie Chart"):为饼状图设置标题,显示为中文和英文。
plt.tight_layout()
  • plt.tight_layout():自动调整图形布局,使得标题和标签不会与图形区域重叠。

5. 保存并显示图形

plt.savefig("饼状图")
  • plt.savefig("饼状图"):将绘制的图形保存为文件,这里保存的文件名为 “饼状图”。默认保存为 PNG 格式,但可以通过指定文件扩展名来改变格式(例如:饼状图.png)。
plt.show()
  • plt.show():显示绘制的饼状图。此行代码会弹出一个窗口,显示图形。
http://www.dtcms.com/a/351061.html

相关文章:

  • 有鹿机器人:为城市描绘清洁新图景的智能使者
  • Linux IO模型:阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO
  • 绿算技术解密金融科技安全:高性能计算与存储驱动金融防火墙新时代
  • 系统安全难题咋解?低代码给出新思路
  • 打破技术壁垒的先进制造框架的智慧工业开源了
  • 医疗巡诊车5G专网路由器应用
  • 360智脑开源优化排序模型——360Zhinao-1.8B-Reranking本地部署教程,提升检索质量,减少大模型“幻觉”现象
  • Windows编程日志4——消息队列和消息处理
  • Hive的核心架构
  • Go语言模块开发
  • 从线到机:AI 与多模态交互如何重塑 B 端与 App 界面设计
  • S-HUB实现泛微E9与飞书对接
  • Redisson详解:高性能redis客户端,超详细!
  • MyBatis 初识:框架定位与核心原理——SQL 自由掌控的艺术
  • 【资讯】国内免费/开源大模型对比及获得途径总结
  • 书生大模型InternLM2:从2.6T数据到200K上下文的开源模型王者
  • 实体店转型破局之道:新零售社区商城小程序开发重构经营生态
  • kafka消费顺序保障
  • Kafa面试经典题--Kafka为什么吞吐量大,速度快
  • 高校科技成果转化生态价值重构
  • Go函数详解:从基础到高阶应用
  • Ubuntu Server 快速部署长安链:基于 Go 的智能合约实现商品溯源
  • 质押、ETF、财库三箭齐发:以太坊价值逻辑的重构与演进
  • Linux系统中,利用sed命令删除文档空格的方法汇总
  • Redis ZSET 深度剖析:从命令、原理到实战
  • 基于 Elasticsearch 解决分库分表查询难题
  • [Maven 基础课程]Maven 是什么
  • 【Linux操作系统】简学深悟启示录:环境变量进程地址
  • Java基础第5天总结(final关键字,枚举,抽象类)
  • Redis-数据类型与常用命令