Matplotlib光速入门-从安装到绘图实战

文章目录

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

Matplotlib光速入门-从安装到绘图实战

; 简介

Matplotlib是Python一个强大的绘图库,搭配NumPy库的使用,可以满足绝大部分的绘图需求,各种你能想到的图表基本都支持,使用代码即可进行绘制,如果画不出来那一定是你的问题(doge)。

本文主要参考Matplotlib文档,归纳总结Matplotlib常用方法,只举例了部分,所有函数和相关参数不能遍举,更多可参考Matplotlib文档

安装

如果使用pip安装:

pip install matplotlib

如果使用conda安装:

conda install matplotlib

如果使用的是Pycham,可以直接打开File->settings->Project:->Python Interpreter中安装库。

Matplotlib光速入门-从安装到绘图实战
搜索matplotlib,点击安装即可。

Matplotlib光速入门-从安装到绘图实战
Matplotlib光速入门-从安装到绘图实战

实战

画框

fig是Figure缩写,即外框,可以包含多个内框。 ax是Axes缩写,即内框,里面可以画各种图。 plt是导入Matplotlib库时的重命名缩写,可以理解为一整张画布,直接添加即可,但细节修改用 ax更好。
两种方法都可,比如以下代码是等价的:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2], [1, 2])
plt.show()
import matplotlib.pyplot as plt
plt.plot([1, 2], [1, 2])
plt.show()

Matplotlib光速入门-从安装到绘图实战

如一张画布上多个画框:

from matplotlib import pyplot as plt

plt.subplot(2, 2, 1)
plt.title("1")
plt.subplot(2, 2, 2)
plt.title("2")
plt.subplot(2, 2, 3)
plt.title("3")
plt.subplot(2, 2, 4)
plt.title("4")
plt.subplots_adjust(wspace=0.5, hspace=0.5)

plt.show()

Matplotlib光速入门-从安装到绘图实战

引用官网的一张图,除了数据外,一张图表还包含了很多元素,如标题(Title)、说明(Legend)、刻度(Minor tick)、刻度名(Minor tick label)、网格(Grid)、标记(Marker)、x轴y轴等。

Matplotlib光速入门-从安装到绘图实战

相关元素的设置可以参考上图或文档,举个栗子:

import numpy as np
from matplotlib import pyplot as plt

plt.title("我的图表")
plt.xlabel("X轴[mm]")
plt.ylabel("Y轴[cm]")
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.xticks(np.arange(0, 60, 5))
plt.yticks(np.arange(0, 15, 1))

plt.plot([10, 25, 50], [2, 7, 13], label="折线", color="#FF0000")
plt.legend()
plt.grid()
plt.show()

Matplotlib光速入门-从安装到绘图实战

(插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

线图

使用plot()函数。

import numpy as np
from matplotlib import pyplot as plt

plt.plot([0, 10], [0, 5], label="直线", linewidth="3")

x = np.linspace(0, 10, 100)
plt.plot(x, 0.05*x*x, label="抛物线")

plt.plot(x, np.sin(x), label="正弦曲线")
plt.plot(x, np.cos(x), label="余弦曲线")

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.legend()
plt.show()

Matplotlib光速入门-从安装到绘图实战
各种线条格式:
import numpy as np
from matplotlib import pyplot as plt

x = np.linspace(1, 10, 30)
plt.plot(x, x, '-')
plt.plot(x, x+1, '--')
plt.plot(x, x+2, '-.')
plt.plot(x, x+3, 'o')
plt.plot(x, x+4, ',')
plt.plot(x, x+5, 'x')
plt.plot(x, x+6, 'd')
plt.plot(x, x+7, ')
plt.plot(x, x+8, '>')
plt.plot(x, x+9, 'v')
plt.plot(x, x+10, '+')
plt.plot(x, x+11, '*')
plt.plot(x, x+12, '-')
plt.plot(x, x+13, 'h')
plt.plot(x, x+14, '|')
plt.plot(x, x+15, '1')
plt.plot(x, x+16, '2')
plt.plot(x, x+17, '3')
plt.plot(x, x+18, '4')
plt.plot(x, x+19, '8')

plt.show()

Matplotlib光速入门-从安装到绘图实战

散点图

使用scatter()函数。

import numpy as np
from matplotlib import pyplot as plt
plt.figure(figsize=(10, 5))

plt.subplot(1, 2, 1)
plt.title("均匀分布")
n = 800
x = np.random.rand(n)
y = np.random.rand(n)
colors = np.random.rand(n)
size = np.random.rand(n)*100
plt.scatter(x, y, c=colors, s=size, alpha=0.3)

plt.subplot(1, 2, 2)
plt.title("正态分布")
x = np.random.randn(n)
y = np.random.randn(n)
plt.scatter(x, y, c=colors, s=size, alpha=0.3)

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.show()

Matplotlib光速入门-从安装到绘图实战

柱状图

使用bar()函数。

import numpy as np
from matplotlib import pyplot as plt
plt.figure(figsize=(10, 5))

plt.subplot(1, 2, 1)
x = np.arange(8)
y = np.random.randint(-3, 5, 8)
plt.bar(x, y, width=0.6)
plt.title('图2')
plt.axhline(0)

plt.subplot(1, 2, 2)
x = np.arange(3)
width = 0.2
plt.bar(x, [4, 6, 2], color='green', width=width, label="A")
plt.bar([i+width for i in x], [3, 7, 4], color='blue', width=width, label="B")
plt.bar([i+2*width for i in x], [5, 6, 4], color='red', width=width, label="C")
plt.xticks([i+width for i in x], ["2020", "2021", "2022"])
plt.title('图2')

plt.legend()
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.show()

Matplotlib光速入门-从安装到绘图实战
还可以使用hist()函数。
import numpy as np
from matplotlib import pyplot as plt

x1 = np.random.normal(2.5, 0.5, 1000)
x2 = np.random.normal(5, 2, 1000)
x3 = np.random.normal(7.5, 1, 1000)
plt.hist(x1, bins=100, alpha=0.5, label="A")
plt.hist(x2, bins=100, alpha=0.5, label="B")
plt.hist(x3, bins=100, alpha=0.5, label="C")

plt.legend()
plt.show()

Matplotlib光速入门-从安装到绘图实战

饼状图

使用pie()函数。

from matplotlib import pyplot as plt

plt.pie([0.4, 0.6], labels=["A", "B"], explode=(0, 0.05), autopct='%0.0f%%')
plt.legend()
plt.show()

Matplotlib光速入门-从安装到绘图实战

等高线图

使用contourf函数。

import numpy as np
from matplotlib import pyplot as plt

x = np.linspace(-3, 3, 256)
y = np.linspace(-3, 3, 256)
X, Y = np.meshgrid(x, y)
Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)
levels = np.linspace(Z.min(), Z.max(), 7)

plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.contour(X, Y, Z)

plt.subplot(1, 2, 2)
plt.contourf(X, Y, Z)

plt.show()

Matplotlib光速入门-从安装到绘图实战

原创不易,请勿转载(本不富裕的访问量雪上加霜 )
博主首页:https://wzlodq.blog.csdn.net/
来都来了,不评论两句吗👀
如果文章对你有帮助,记得一键三连❤

Original: https://blog.csdn.net/qq_45034708/article/details/126789198
Author: 吾仄lo咚锵
Title: Matplotlib光速入门-从安装到绘图实战

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/766555/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球