首页 > 编程语言 >Python Matplotlib 使用教程:基本图表绘制指南

Python Matplotlib 使用教程:基本图表绘制指南

时间:2024-12-28 20:53:55浏览次数:5  
标签:教程 plt title Python Matplotlib 柱状图 matplotlib import 绘制

Matplotlib 是 Python 中一个非常流行的绘图库,它以简单易用和功能丰富而闻名,适合各种场景的数据可视化需求。在数据分析和数据科学领域,Matplotlib 是我们展示数据的有力工具。本文将详细讲解如何使用 Matplotlib 绘制常见图表,包括折线图、散点图、柱状图、饼图和直方图等。

在这里插入图片描述

1. Matplotlib 简介和安装

Matplotlib 是一个 Python 库,可以轻松绘制静态、动态和交互式图表。它提供了灵活的绘图功能,尤其在数据科学和数据分析领域应用广泛。

安装 Matplotlib

在安装 Python 环境后,可以使用 pip 安装 Matplotlib:

pip install matplotlib

安装完成后,可以通过以下方式导入 Matplotlib:

import matplotlib.pyplot as plt

2. 绘制基础图表

2.1 折线图(Line Plot)

折线图通常用于展示数据随时间的变化,或观察变量之间的关系。绘制折线图的基本语法如下:

import matplotlib.pyplot as plt

# 定义数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 绘制折线图
plt.plot(x, y, marker='o', color='b', linestyle='-', linewidth=2, markersize=6)
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('折线图示例')
plt.grid(True)  # 添加网格
plt.show()
  • plt.plot:定义折线图的线条颜色、线型等。
  • marker:指定点的样式,例如 'o' 为圆形,'*' 为星形。
  • color:线条颜色,如 b 表示蓝色。
  • linestyle:线条样式,'-' 为实线。
  • grid(True):显示网格。

2.2 散点图(Scatter Plot)

散点图适合表示数据的离散分布情况,可用于发现变量之间的关系。绘制散点图的代码如下:

import matplotlib.pyplot as plt

# 定义数据
x = [1, 2, 3, 4, 5, 6]
y = [2, 3, 4, 6, 7, 8]

# 绘制散点图
plt.scatter(x, y, color='r', marker='x')
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('散点图示例')
plt.show()
  • plt.scatter:创建散点图,允许使用不同的点样式和颜色。
  • marker='x':指定点的样式为“x”形。

2.3 柱状图(Bar Chart)

柱状图用于比较不同类别的数据,可以是水平或垂直的。

import matplotlib.pyplot as plt

# 定义数据
categories = ['A', 'B', 'C', 'D']
values = [10, 15, 7, 20]

# 绘制柱状图
plt.bar(categories, values, color='skyblue')
plt.xlabel('类别')
plt.ylabel('值')
plt.title('柱状图示例')
plt.show()
  • plt.bar:创建柱状图,指定颜色、宽度等。
  • color:柱子的颜色,可以使用名称如 skyblue 或色号。

2.4 水平柱状图

水平柱状图与柱状图类似,但条形是横向的。

import matplotlib.pyplot as plt

# 定义数据
categories = ['A', 'B', 'C', 'D']
values = [10, 15, 7, 20]

# 绘制水平柱状图
plt.barh(categories, values, color='coral')
plt.xlabel('值')
plt.ylabel('类别')
plt.title('水平柱状图示例')
plt.show()
  • plt.barh:创建水平柱状图,与 bar 类似,但在 X 和 Y 轴的定义上有区别。

2.5 饼图(Pie Chart)

饼图主要用于展示各个部分占整体的比例。它在展示市场份额、人口分布等场景中常用。

import matplotlib.pyplot as plt

# 定义数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
explode = (0, 0.1, 0, 0)  # 突出显示第二块

# 绘制饼图
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
plt.title('饼图示例')
plt.show()
  • explode:设置高亮的分离程度。
  • autopct='%1.1f%%':显示每个扇形的百分比。
  • shadow:添加阴影效果。

3. 高级图表

3.1 直方图(Histogram)

直方图通常用于展示数据的分布情况,比如查看数据在各个区间上的频率。

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
data = np.random.randn(1000)

# 绘制直方图
plt.hist(data, bins=30, color='purple', edgecolor='black')
plt.xlabel('值')
plt.ylabel('频率')
plt.title('直方图示例')
plt.show()
  • plt.hist:绘制直方图。
  • bins=30:将数据分为 30 个区间。
  • edgecolor='black':设置条形边框颜色为黑色。

3.2 箱线图(Box Plot)

箱线图用于显示数据的离散分布和异常值情况,特别适合于对比不同组的分布。

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
data = [np.random.normal(0, std, 100) for std in range(1, 4)]

# 绘制箱线图
plt.boxplot(data, patch_artist=True, notch=True)
plt.xlabel('组别')
plt.ylabel('值')
plt.title('箱线图示例')
plt.show()
  • patch_artist=True:填充箱体颜色。
  • notch=True:添加凹槽以标记中位数。

3.3 热力图(Heatmap)

热力图可以显示变量之间的相关性或密度分布,非常适合分析大规模数据的关系。

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
data = np.random.rand(10, 10)

# 绘制热力图
plt.imshow(data, cmap='hot', interpolation='nearest')
plt.colorbar()  # 添加颜色条
plt.title('热力图示例')
plt.show()
  • cmap='hot':颜色映射设置为“热”色调。
  • colorbar():添加颜色条。

4. 图表的自定义与优化

4.1 设置图例

图例可以帮助我们更好地理解数据的含义。通过 plt.legend() 可以轻松添加图例。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 8, 27, 64, 125]

# 绘制多条折线图
plt.plot(x, y1, label='平方', color='blue')
plt.plot(x, y2, label='立方', color='green')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('带图例的折线图')
plt.legend()  # 添加图例
plt.show()

4.2 使用子图(Subplot)

在一个窗口中显示多个图,可以使用 plt.subplot

import matplotlib.pyplot as plt

# 创建 2x2 子图
plt.subplot(2, 2, 1)
plt.plot([1, 2, 3], [1, 4, 9])
plt.title('子图1')

plt.subplot(2, 2, 2)
plt.bar([1, 2, 3], [1, 2, 3])
plt.title('子图2')

plt.subplot(2, 2, 3)
plt.scatter([1, 2, 3], [1, 4, 9])
plt.title('子图3')

plt.subplot(2, 2, 4)
plt.hist([1, 2, 3, 1, 2, 1

])
plt.title('子图4')

plt.tight_layout()  # 自动调整子图间的间距
plt.show()

5. 总结

通过本文的介绍,大家可以初步掌握 Matplotlib 的基本使用方法和各种常用图表的绘制技巧。

标签:教程,plt,title,Python,Matplotlib,柱状图,matplotlib,import,绘制
From: https://www.cnblogs.com/chenshifu666/p/18637939

相关文章

  • Python 中使用 Matplotlib 进行多图绘制
    Python中使用Matplotlib进行多图绘制Matplotlib是Python中非常强大的数据可视化工具,它可以用来生成简单到复杂的各种图形。无论是处理单张图表还是多图并列展示,Matplotlib都能提供高效的支持。在本篇文章中,我们将介绍如何使用Matplotlib绘制多图,以便在同一画布上展示多......
  • Python 正则表达式进阶用法:字符集与字符范围详解
    Python正则表达式进阶用法:字符集与字符范围详解正则表达式是文本处理和数据清洗中不可或缺的工具。在前面的学习中,我们已经了解了基本的正则表达式匹配,如匹配单个字符、字符串开始和结束的位置等。今天,我们将进入正则表达式的一个进阶主题:字符集(CharacterSet)和字符范围(Characte......
  • 如何免费使用 Termius Pro 版?Termius 工具下载与破解教程
    今天想和大家聊聊Termius,一款跨平台的SSH/SFTP终端工具。它不仅功能强大,还特别适合需要频繁上传文件夹和进行远程管理的小伙伴。无论你是程序员、运维工程师,还是需要远程管理服务器的爱好者,这款工具都能成为你的得力助手!为什么选择Termius?市面上的终端工具千千万,但Termius......
  • Sublime Text 4 4169 下载及安装教程
    不得不说sublime是轻量化IDE性能王者,比vscode要快不少,不过vscode如今胜在生态。下面正式开始pojie教程! 补丁已经放到网盘了,需要的自取。download:SublimeText44169 首先x64dbg载入sublime_text.exe主程序,shift+F9跑起来 先找个最明显的点入手,例如点击帮助->关于......
  • Python 正则表达式进阶用法:边界匹配
    Python正则表达式进阶用法:边界匹配正则表达式是一种强大的工具,用于处理文本中的模式匹配。它广泛应用于文本查找、替换、数据清洗等任务。在学习了正则表达式的基础知识后,掌握更高级的用法将使得正则表达式的应用更加灵活。边界匹配(BoundaryMatching)是正则表达式中的一种重要进......
  • python语法
    in操作符:也叫成员检测符。iteminobj,返回True或False。obj需要是一个可迭代对象(iterable),或者实现了__contains__方法的自定义类。defgen_fun():yield1yield2yield3print(3in[1,2,3])#in+列表print(3in(1,2,3))#in+元组gen=gen_......
  • PhpStorm 2024.3完整版的安装教程(附激活,常见问题处理)
    卸载老版本PhpStorm首先,如果小伙伴的电脑上有安装老版本的PhpStorm,需要将其彻底卸载掉,如下所示(没有安装则不用管,直接安装即可):TIP:如果你之前使用过本站提供的 激活到2025年版本脚本,需要执行对应卸载脚本/适用2024版本/JetBrains2023最新全家桶/jetbra/scripts/unin......
  • 数据结构与算法Python版 图
    文章目录一、图二、抽象数据类型图三、图的实现-邻接列表法一、图表示图的英文单词painting:用画刷画的油画drawing:用硬笔画的素描/线条画picture:真实形象所反映的画,如照片等,如takepictureimage:由印象而来的画,遥感影像做image,因是经过传感器印象而来figure:轮廓图的......
  • python3网络爬虫开发实战-第2版PDF免费下载
    适读人群:本书适合Python程序员阅读。电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:https://item.jd.com/13527222.htmlPython之父推荐的爬虫入门到实战教程书籍,上一版销量近10万册,静觅博客博主崔庆才倾力打造,App端也能爬微软中国大数据工程师、博客......
  • python毕设 基于web的旅游网站的设计与实现程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景随着互联网技术的飞速发展,基于web的应用在各个领域广泛普及。在旅游行业,国内外对于旅游网站的研究已经取得了不少成果。现有研究主要......