Matplotlib 学习

Posted xunzf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matplotlib 学习相关的知识,希望对你有一定的参考价值。

Matplotlib图像组成:

  • Figure:指整个图形,您可以把它理解成一张画布,它包括了所有的元素,比如标题、轴线等;
  • Axes:绘制 2D 图像的实际区域,也称为轴域区,或者绘图区;
  • Axis:指坐标系中的垂直轴与水平轴,包含轴的长度大小(图中轴长为 7)、轴标签(指 x 轴,y轴)和刻度标签;
  • Artist:您在画布上看到的所有元素都属于 Artist 对象,比如文本对象(title、xlabel、ylabel)、Line2D 对象(用于绘制2D图像)等。

 

绘图类型:

 

Image函数:

 

Axis函数:

 

Figure函数:

正弦曲线

import math
import matplotlib.pyplot as plt
import numpy as np

"""
正弦曲线图
"""

# 第三个参数为步长,即两个参数之间的差值
x = np.arange(0, math.pi*2, 0.05)
y=np.sin(x)
plt.plot(x,y)
plt.xlabel("angle")
plt.ylabel("sine")
plt.title(\'sine wave\')
plt.show()

 

pylab绘图:

PyLab绘图基础
 from numpy import *
from pylab import *

x=linspace(-3,3,30)
y=x**2
plot(x,y)
show()

plot(x,y,\'r\')
show()

plot(x,y,\'r.\')
show()

plot(x,sin(x))
plot(x,cos(x),\'r-\')
plot(x,-sin(x),\'g--\')
show()

 

Matplot figure对象:

  fig = plt.figure()

 

Matplotlib axes类:

  一个画布(figure)中可以包含多个 axes(轴域)对象,但是同一个axes对象只能在一个画布中使用。(2D 绘图区域(axes)包含两个轴(axis)对象;如果是3D绘图区域,则包含三个)

  通过调用 add_axes() 方法能够将 axes 对象添加到画布中,该方法用来生成一个 axes 轴域对象,对象的位置由参数rect决定。

  rect 是位置参数,接受一个由 4 个元素组成的浮点数列表,形如 [left, bottom, width, height] ,它表示添加到画布中的矩形区域的左下角坐标(x, y),以及宽度和高度。如下所示:

  ax=fig.add_axes([0.1,0.1,0.8,0.8])

  注意:每个元素的值是画布宽度和高度的分数。即将画布的宽、高作为 1 个单位。比如,[ 0.1, 0.1, 0.8, 0.8],它代表着从画布 10% 的位置开始绘制, 宽高是画布的 80%。

  Legend()绘制图例

    ax.legend(handles, labels, loc)

    • labels 是一个字符串序列,用来指定标签的名称;
    • loc 是指定图例位置的参数,其参数值可以用字符串或整数来表示;
    • handles 参数,它也是一个序列,它包含了所有线型的实例;

  loc参数有字符串和整数两种:

    

  axes.plot()

    这是 axes 类的基本方法,它将一个数组的值与另一个数组的值绘制成线或标记,plot() 方法具有可选格式的字符串参数,用来指定线型、标记颜色、样式以及大小。

直线图
import matplotlib.pyplot as plt

y = [1, 4, 9, 16, 25, 36, 49, 64]
x1 = [1, 16, 30, 42, 55, 68, 77, 88]
x2 = [1, 6, 12, 18, 28, 40, 52, 65]
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
# 使用简写的形式color/标记符/线型
l1 = ax.plot(x1, y, \'ys-\')
l2 = ax.plot(x2, y, \'go--\')
ax.legend(labels=(\'tv\', \'Smartphone\'), loc=\'lower right\')  # legend placed at lower right
ax.set_title("Advertisement effect on sales")
ax.set_xlabel(\'medium\')
ax.set_ylabel(\'sales\')
plt.show()

 

以上是关于Matplotlib 学习的主要内容,如果未能解决你的问题,请参考以下文章

matplotlib绘图学习

数据挖掘学习二

Matplotlib学习---用matplotlib画热图(heatmap)

Matplotlib学习---用matplotlib画面积图(area chart)

Matplotlib学习

Python matplotlib绘图学习笔记