Matplotlib库基础学习

Matplotlib库基础学习

一、前言

数据人,学大数据的要学会去收集、存储、处理和分析海量、多样性的数据,冰冷的代码是证明不了什么的,将经过一些处理的数据进行可视化,才能更加直观的去反映情况,准确性和真实性很重要,可观性也很重要。

利用Python进行数据处理非常的方便,Python提供了非常丰富的库来帮助我们更加方便有效地去完成处理任务。

本期,我们来学习Python中的可视化学习中经常会用到的库——Matplotlib,学习它的一些基础用法。

二、我的环境

  • 电脑系统:Windows 11
  • 语言版本:Python 3.10.4
  • 编译器:VsCode

三、基本图表的绘制

如果你使用的是Anaconda,那么它自带Matplotlib,如果不是,则直接在终端使用pip命令下载即可。

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

1、绘制折线图

使用函数plt.plot()绘制折线图

import matplotlib.pyplot as plt

x = [1, 2, 3]
y = [2, 4, 6]
plt.plot(x, y)
plt.show()

它绘制的效果是:

在这里插入图片描述

我们试着引入Numpy中的一维数组进行属性运算,让x轴和y轴之间存在数据关联。

import matplotlib.pyplot as plt
import numpy as np

x1 = np.array([1, 2, 3])
y1 = x1 + 1
plt.plot(x1, y1)

y2 = x1 * 2
plt.plot(x1, y2, color='red', linewidth=3, linestyle='--')
plt.show()

它绘制的效果是:

在这里插入图片描述

2、绘制柱形图

使用函数plt.bar()绘制柱形图

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [5, 4, 3, 2, 1]
plt.bar(x, y)
plt.show()

在这里插入图片描述

3、绘制散点图

使用函数plt.scatter()绘制散点图

import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(10)
y = np.random.rand(10)
plt.scatter(x, y)
plt.show()

它绘制的效果是:

在这里插入图片描述

4、绘制直方图

使用函数plt.hist()绘制直方图

import matplotlib.pyplot as plt
import numpy as np

# 随机生成10000个服从标准正态分布的数据
data = np.random.randn(10000)
# bins是直方图的柱形数量,edgecolor是柱形的边
plt.hist(data, bins=40, edgecolor="black")
plt.show()

它绘制的效果是:

在这里插入图片描述

四、数据可视化常用技巧

我们知道光显示一张图是不够周到的,我们还需要给我们可视化出来的图进行相关的设置,让它更能直观的展示信息。

1、添加文字说明

使用函数plt.title()为图表添加标题,使用函数plt.xlabel()和函数plt.ylabel()分别为x轴和y轴添加标签。

import matplotlib.pyplot as plt

x = [1, 2, 3]
y = [2, 4, 6]
plt.plot(x, y)
plt.title('TITLE')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

它绘制的效果是:

在这里插入图片描述

2、添加图例

使用函数plt.legend()给图表添加图例,添加前需要设置标签参数

import matplotlib.pyplot as plt
import numpy as np

x1 = np.array([1, 2, 3])
y1 = x1 + 1
plt.plot(x1, y1, label="y = x + 1")

y2 = x1 * 2
plt.plot(x1, y2, linestyle='--', label="y = x * 2")
plt.legend(loc="upper left")    # 设置图里位置为左上角
plt.show()

它绘制的效果是:

在这里插入图片描述

3、设置双坐标轴

有些时候同一个表里两条线的取值范围相差很大,那么就可以使用双坐标轴来解决,使用函数plt.twinx()来绘制双坐标轴

import matplotlib.pyplot as plt
import numpy as np

x1 = np.array([10, 20, 30])
y1 = x1
plt.plot(x1, y1, color='red', linestyle='--', label='y = x')
plt.legend(loc='upper left')
plt.twinx()

y2 = x1 * x1
plt.plot(x1, y2, label='y = x^2')
plt.legend(loc='upper right')
plt.show()

它绘制的效果是:

在这里插入图片描述

4、设置图表大小

如果觉得生成的图表比较小,可以使用如下代码进行设置大小

plt.rcRarams['figure.figsize'] = [8, 6]

5、设置X轴刻度角度

有些时候x轴因为刻度内容比较多,就会导致很密集,不方便阅读图表,我们可以通过设置刻度角度来进行解决

plt.xticks(rotation=45)

6、绘制多图

有些时候我们需要在一张画布中绘制多个图表,绘制多图使用函数subplot()或者subplots()

subplot()函数它的参数通常表示一个3位数,该整数的各位数字分别表示子图的行数、列数和当前子图的序号。

import matplotlib.pyplot as plt

# 绘制第一张子图
ax1 = plt.subplot(221)
plt.plot([1 ,2, 3], [2, 4, 6])

# 绘制第二张子图
ax2 = plt.subplot(222)
plt.bar([1 ,2, 3], [2, 4, 6])

# 绘制第三张子图
ax3 = plt.subplot(223)
plt.scatter([1 ,3, 5], [2, 4, 6])

# 绘制第第四张子图
ax4 = plt.subplot(224)
plt.hist([2 , 2, 2, 3, 4])

plt.show()

它绘制的效果是:

在这里插入图片描述

如果需要一次性生成多张子图,就可以用函数subplots()来实现。

fig, axes = plt.subplots(nrows=2, ncols=2)

subplots()函数有两个参数:nrows表示行数,ncols表示列数,然后使用函数flatten()将子图集合展开。

import matplotlib.pyplot as plt

fig, axes = plt.subplots(2, 2, figsize=(10, 8))
ax1, ax2, ax3, ax4 = axes.flatten()

ax1.plot([1 ,2, 3], [2, 4, 6])
ax2.bar([1 ,2, 3], [2, 4, 6])
ax3.scatter([1 ,3, 5], [2, 4, 6])
ax4.hist([2 , 2, 2, 3, 4])

plt.show()

它绘制的结果跟上面的一样,总的来说一次性画多张图表更加的方便。

五、最后我想说

本期博客主要介绍了Matplotlib库的一些基本的画图方法,大家可以先一个一个掌握基础方法,然后再将其总结起来一起用,然后再去官方文档学习更多高级强大的方法来处理解决我们的可视化问题。

另外,如果你画图使用中文出现乱码的情况可以去看一下我之前的一篇博客,里面有解决办法,希望能帮助到你。

解决Python中matplotlib 库画图中文和负号显示为方框的问题

最后,创造不易,期待得到你们的支持,谢谢!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-北天-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值