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画热图(heatmap)