Matplotlib模块详解 | CSDN创作打卡

1. 什么是 Matplotlib 模块

Matplotlib 是 Python 中类似 MATLAB 的绘图工具,其能方便地实现数据可视化,熟悉 MATLAB 的也可以很快上手 Matplotlib。

2. Matplotlib 模块构成

Matplotlib 模块构成:

1)Figure 在绘图前,我们需要 Figure 对象,可以理解成我们需要一张画板才能开始绘图。

2)Axes 有Figure对象后,我们还需要轴,没有轴的话就没有绘图基准。

3)Multiple Axes 除了添加 Axes 的方式 ,还提供了一种一次性生成的方式。

 4)Axes Vs.pyplot 的作画方式只适合简单的绘图,快速的将图绘出。在处理复杂的绘图工作时,我们还是需要使用 Axes 来完成作画的。

创建 Figure 对象,展开画板:

# 导入 Matplotlib 模块
import matplotlib.pyplot as plt

# 展开画板
fig = plt.figure()

创建绘图基准,x/y 轴:

# 展开画板
fig = plt.figure()

# 添加Axes,参数的解释是在画板的第1行第1列的第一个位置生成一个Axes对象来准备作画。
ax = fig.add_subplot(111)

'''也可以使用 fig.add_subplot(m,n,x) 的方式添加Axes,
前两个参数确定面板的划分,最后的参数表示第几个Axes,
例如,2,2,1 就是会将整个面板划分成 2*2 的方格,并显示第1个Axes。'''
# fig.add_subplot(2,2,1)

# 定义x、y轴的取值范围,及标题
ax.set(xlim=[0.5, 4.5], ylim=[-2, 8], title='An Example Axes',
       ylabel='Y-Axis', xlabel='X-Axis')

# 打印图表,相当于Python中的print函数
plt.show()

Matplotlib模块详解 | CSDN创作打卡_第1张图片

一次性生成 Multiple Axes:

# 导入 Matplotlib 模块
import matplotlib.pyplot as plt

# 定义画板2*2
fig, axes = plt.subplots(nrows=2, ncols=2)

# 一次性生成全部图表
axes[0,0].set(title='Upper Left')
axes[0,1].set(title='Upper Right')
axes[1,0].set(title='Lower Left')
axes[1,1].set(title='Lower Right')

# 打印图表,相当于Python中的print函数
plt.show()

Matplotlib模块详解 | CSDN创作打卡_第2张图片

 Axes Vs.pyplot 作画方式:

# 导入 Matplotlib 模块
import matplotlib.pyplot as plt

# 定义简单的图表
plt.plot([1, 2, 3, 4], [10, 20, 25, 30], color='lightblue', linewidth=3)
plt.xlim(0.5, 4.5)

# 打印图表,相当于Python中的print函数
plt.show()

Matplotlib模块详解 | CSDN创作打卡_第3张图片

3. 基本 2D 绘图

线的绘制有两种方法:

1)利用 plot() 函数画出一系列的点,并且用线将它们连接起来;

2)利用关键字参数的方式绘图。

使用用 plot() 函数画点,并连线:

import matplotlib.pyplot as plt
import numpy as np

# 展开画板
fig = plt.figure()

# 添加三个Axes
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(224)

# 添加 x、y 数据
x = np.linspace(0, np.pi)
y_sin = np.sin(x)
y_cos = np.cos(x)

'''在上面的三个Axes上作画。
plot()函数,前面两个参数为x轴、y轴数据,
第三个参数是 MATLAB 风格的绘图,对应 ax3 上的颜色,marker(点),线型。'''
ax1.plot(x, y_sin)
ax2.plot(x, y_sin, 'go--', linewidth=2, markersize=5)
ax3.plot(x, y_cos, color='blue', marker='*', linestyle='dashed')

# 打印图表,相当于Python中的print函数
plt.show()


Matplotlib模块详解 | CSDN创作打卡_第4张图片

使用关键字参数的方式绘图:

import matplotlib.pyplot as plt
import numpy as np

# 定义数据
x = np.linspace(0, 10, 200)
data_obj = {'x': x,
            'y1': 2 * x + 1,
            'y2': 3 * x + 1.2,
            'mean': 0.5 * x * np.cos(2*x) + 2.5 * x + 1.1}

fig, ax = plt.subplots()

# 填充两条线之间的颜色
ax.fill_between('x', 'y1', 'y2', color='blue', data=data_obj)

# 画出中间的曲线
ax.plot('x', 'mean', color='red', data=data_obj)

# 打印图表,相当于Python中的print函数
plt.show()

''' 发现上面的作图,在数据部分只传入了字符串,这些字符串对一个这 
data_obj 中的关键字,当以这种方式作画时,将会在传入给 data 中寻找
对应关键字的数据来绘图。 '''

Matplotlib模块详解 | CSDN创作打卡_第5张图片

3.1 条形图

import numpy as ny
import matplotlib.pyplot as p

x = [10, 20, 30, 40, 50]
index = ny.arange(5)
# index表示x轴类别,x表示y轴数量
p.bar(index, x)
p.show()

Matplotlib模块详解 | CSDN创作打卡_第6张图片

3.2 直方图

import numpy as ny
import matplotlib.pyplot as p

p.hist(ny.random.randn(100), bins=40, facecolor="blue",
       edgecolor="black", alpha=0.7)
p.title("title")
p.show()

Matplotlib模块详解 | CSDN创作打卡_第7张图片

 3.3 单条折线图

import numpy as ny
import matplotlib.pyplot as p

# a.arrange(6)为x轴,后为y轴
p.plot(ny.arange(6), [10, 20, 25, 48, 69, 80])
p.title("title")
p.show()

Matplotlib模块详解 | CSDN创作打卡_第8张图片

3.4 多条折线图

import numpy as ny
import matplotlib.pyplot as p

p.plot(ny.arange(6), [10, 20, 25, 48, 69, 80],
       color="red", linewidth=2.0, linestyle="--")
# a.arrange(6)为x轴,后为y轴
p.plot(ny.arange(6), [11, 16, 23, 60, 69, 90],
       color="blue", linewidth=2.0, linestyle="-")
p.title("title")
p.show()

Matplotlib模块详解 | CSDN创作打卡_第9张图片

 

你可能感兴趣的:(Python常用标准库详解,python,数据分析,数据挖掘)