Python绘图工具Matplotlib安装与使用,快速上手

简介: Python绘图工具Matplotlib安装与使用,快速上手

Matplotlib

1 什么是Matplotlib

Matplotlib 是一个用于绘制图表和可视化数据的 Python库。它提供了丰富的绘图工具,可以用于生成各种静态、交互式和动画图表。Matplotlib 是数据科学、机器学习和科学计算领域中最流行的绘图库之一。

是专门用于开发2D图表(包括3D图表)

以渐进、交互式方式实现数据可视化

对图像元素控制力强。

可输出PNG、PDF、SVG和EPS等多种格式

2 为什么要学习Matplotlib

可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。

  • 能将数据进行可视化,更直观的呈现
  • 使数据更加客观、更具说服力

例如下面两个图为数字展示和图形展示:

3 实现Matplotlib画图 — 折线图

3.1 matplotlib.pyplot模块

导包

matplotlib.pytplot包含了一系列类似于matlab的画图函数。

import matplotlib.pyplot as plt

3.2 图形绘制流程

1.创建画布 – plt.figure()

plt.figure(figsize=(), dpi=)

figsize: 指定图的长宽

dpi: 图像的清晰度,0-1清晰度逐渐增大

返回fig对象


2.绘制图像 – plt.plot(x, y)

以折线图为例


3.显示图像 – plt.show()

3.3 折线图绘制与显示

案例:展现上海一周的天气,比如从星期一到星期日的天气温度如下**

import matplotlib.pyplot as plt

# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 2.绘制折线图
plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])

# 3.显示图像
plt.show()

4 散点图绘制

散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。

特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)

api:plt.scatter(x, y)

参数解释:

x,y分别是一组数据,可以用列表表示


案例:

需求:探究房屋面积和房屋价格的关系

房屋面积数据:

x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01, 20.67, 288.64,

163.56, 120.06, 207.83, 342.75, 147.9 , 53.06, 224.72, 29.51,

21.61, 483.21, 245.25, 399.25, 343.35]


房屋价格数据:

y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61, 24.9 , 239.34,

140.32, 104.15, 176.84, 288.23, 128.79, 49.64, 191.74, 33.1 ,

30.74, 400.02, 205.35, 330.64, 283.45]

140.32, 104.15, 176.84, 288.23, 128.79, 49.64, 191.74, 33.1 ,

30.74, 400.02, 205.35, 330.64, 283.45]

import matplotlib.pyplot as plt
import random

#设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字符集

plt.rcParams['axes.unicode_minus'] = False # 设置负号正常显示

# 0.准备数据
x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01,  20.67, 288.64,
       163.56, 120.06, 207.83, 342.75, 147.9 ,  53.06, 224.72,  29.51,
        21.61, 483.21, 245.25, 399.25, 343.35]
y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61,  24.9 , 239.34,
       140.32, 104.15, 176.84, 288.23, 128.79,  49.64, 191.74,  33.1 ,
        30.74, 400.02, 205.35, 330.64, 283.45]

# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 2.绘制散点图
plt.scatter(x, y)

# 3.显示图像
plt.show()
可见,房屋价格和面积成正相关
在这里插入图片描述

5 柱状图绘制

可见,房屋价格和面积成正相关

5 柱状图绘制

柱状图:排列在工作表的列或行中的数据可以绘制到柱状图中。

特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)

api:plt.bar(x, width, align=‘center’, **kwargs)

参数解读

Parameters:

x : 需要传递的数据

width : 柱状图的宽度

align : 每个柱状图的位置对齐方式

{‘center’, ‘edge’}, optional, default: ‘center’

**kwargs :

color:选择柱状图的颜色

案例:

需求-对比每部电影的票房收入

电影数据如下图所示:

准备数据

[‘雷神3:诸神黄昏’,‘正义联盟’,‘东方快车谋杀案’,‘寻梦环游记’,‘全球风暴’, ‘降魔传’,‘追捕’,‘七十七天’,‘密战’,‘狂兽’,‘其它’]

[73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]

绘制柱状图

代码:

import matplotlib.pyplot as plt
import random

#设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字符集

plt.rcParams['axes.unicode_minus'] = False # 设置负号正常显示

# 0.准备数据
# 电影名字
movie_name = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传','追捕','七十七天','密战','狂兽','其它']
# 横坐标
x = range(len(movie_name))
# 票房数据
y = [73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]

# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 2.绘制柱状图
plt.bar(x, y, width=0.5, color=['b','r','g','y','c','m','y','k','c','g','b'])

# 2.1b修改x轴的刻度显示
plt.xticks(x, movie_name)

# 2.2 添加网格显示
plt.grid(linestyle="--", alpha=0.5)

# 2.3 添加标题
plt.title("电影票房收入对比",fontsize=25)

# 3.显示图像
plt.show()

6 饼状图绘制

饼图:用于表示不同分类的占比情况,通过弧度大小来对比各种分类。

特点:分类数据的占比情况(占比)

api:plt.pie(x, labels=,autopct=,colors)

参数解读

Parameters:

x:数量,自动算百分比

labels:每部分名称

autopct:占比显示指定%1.2f%%

colors:每部分颜色

案例:

import matplotlib.pyplot as plt
import random

#设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字符集

plt.rcParams['axes.unicode_minus'] = False # 设置负号正常显示

# 0.准备数据
#饼状图,只要给了数字,程序会自动计算占比
x = [1,2,3,4,5]
label = ['class1','class2','class3','class4','class5']

# 1.创建画布
plt.figure()

# 2.绘制图形
#autopct表示显示每部分占比
plt.pie(x,labels=label,autopct="%.2f%%")



# 3.显示图像
plt.show()

如果想实现饼状图某个部分被抽取出去,可以借助explode参数

创建一个列表,被抽取的部分对应的值写成非零,其他部分写成0即可 该字段的意思是被抽取的部分中心距离原点的距离

explode = [0,0,0.1,0,0]

#绘制图形

#autopct表示显示每部分占比

plt.pie(x,labels=label,autopct=“%.2f%%”,explode=explode)


相关文章
|
5天前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
3天前
|
测试技术 Python
Python MagicMock: Mock 变量的强大工具
Python MagicMock: Mock 变量的强大工具
22 8
|
4天前
|
机器学习/深度学习 搜索推荐 数据可视化
Python量化炒股常用的Matplotlib包
Python量化炒股常用的Matplotlib包
19 7
|
1天前
|
数据可视化 数据挖掘 API
Python中的数据可视化利器:Matplotlib与Seaborn对比解析
在Python数据科学领域,数据可视化是一个重要环节。它不仅帮助我们理解数据,更能够让我们洞察数据背后的故事。本文将深入探讨两种广泛使用的数据可视化库——Matplotlib与Seaborn,通过对比它们的特点、优劣势以及适用场景,为读者提供一个清晰的选择指南。无论是初学者还是有经验的开发者,都能从中找到有价值的信息,提升自己的数据可视化技能。
|
3天前
|
Python
Matplotlib 教程 之 Matplotlib 绘图标记 9
在本教程中,我们将探讨如何使用 Matplotlib 的 `plot()` 方法中的 `marker` 参数来自定义图表标记。您可以选择不同的线类型(如实线 `'-'`、虚线 `':'` 等),以及颜色类型(如红色 `'r'`、绿色 `'g'` 等)。同时,通过调整 `markersize (ms)`、`markerfacecolor (mfc)` 和 `markeredgecolor (mec)` 参数,可以定制标记的大小和颜色。
8 1
|
3天前
|
开发者 Python
探索Python中的列表推导式:一种简洁而强大的工具
【9月更文挑战第29天】在Python的编程世界中,代码的简洁性和可读性总是受到高度赞扬。列表推导式(List Comprehension)作为Python的一个特色功能,不仅能够以简洁的方式生成列表,还能提高代码的执行效率。本文将通过直观的例子和分析,带你深入理解列表推导式的魅力所在,并探讨如何在日常编程中有效利用这一工具来简化代码结构,提升开发效率。
|
4天前
|
API Python
30天拿下Python之matplotlib模块
30天拿下Python之matplotlib模块
|
4天前
|
Python
Matplotlib 教程 之 Matplotlib 绘图标记 8
在 Matplotlib 中,可以通过 `plot()` 方法的 `marker` 参数自定义图表标记。此外,还可以设置线类型(如 `'-'` 实线、`':'` 虚线等)和颜色(如 `'r'` 红色、`'g'` 绿色等)。使用 `markersize` (`ms`) 定义大小,`markerfacecolor` (`mfc`) 和 `markeredgecolor` (`mec`) 分别定义标记的内部和边框颜色。
11 0
|
5天前
|
数据可视化 数据挖掘 Linux
10幅必须掌握的Seaborn绘图
10幅必须掌握的Seaborn绘图
17 0
|
5天前
|
数据可视化 Python
Matplotlib 教程 之 Matplotlib 绘图标记 6
在本教程中,我们将探讨如何利用 Matplotlib 的 `plot()` 方法中的 `marker` 参数来自定义图表标记,以增强数据可视化效果。此外,还介绍了线类型(如实线 `'-'`、虚线 `':'` 等)、颜色类型(如红色 `'r'`、绿色 `'g'` 等)以及如何通过 `markersize` (`ms`)、`markerfacecolor` (`mfc`) 和 `markeredgecolor` (`mec`) 来调整标记的大小和颜色。通过一个示例展示了如何设置标记大小。
10 0
下一篇
无影云桌面