Matplotlib 基本使用
[TOC]
1.简单曲线绘制
import matplotlib.pyplot as plt
import numpy as np
plt.plot([1, 2, 3, 4], 'r')
plot.ylabel('Simple red line')
plot.show()plot([x], y, [fmt], data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
该函数可以绘制点或者曲线,根据给定的(x, y)坐标值,可以在一个图中绘制两条曲线,可以使用
Line2D 的属性作为关键字参数设置更多的特性。
plt.plot(x, y, 'go--', linewidth=2, markersize=12)
plt.plot(x, y, color='green', marker='o', linestyle='dashed',
linewidth=2, marksize=12)Parameters:\
x, y : 给定的点的坐标,默认会将这些点连成曲线,使用参数 'b-' 即蓝色的直线 x坐标可以省略,默认为0-n-1
fmt: 指定点或者连线的模式,可用的颜色以及连线的格式如下
character
color
'b'
blue
'g'
green
'r'
red
'c'
cyan(天蓝)
'm'
magenta(紫)
'y'
yellow
'k'
black
'w'
white
character
description
‘-’
直线
‘--’
虚线
'-.'
短线点相连
‘:’
小圆点
2. 创建子图
plt.subplots((nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)`
使用该函数创建子图布局,返回figure对象,以及一个numpy.ndarray,可以根据位置制定相应的子图对象
nrows, ncols:子图的行列布局】
sharex, sharey指定是否共享坐标轴可以的选项{'none', 'all'm, 'row', 'col'}
squeeze:true时返回的坐标对象的多余维度被压缩
subplots_kw:构建每个子图的关键字的字典
gridspec_kw: 构建布局的关键字
**fig_kw: 所有需要传递给
plt.figure()的关键字参数
plt.subplot(nrows, ncols, index, **kwargs)在当前的表格中创建一个新的坐标图并且返回,其虚拟位置在index(1-n),当函数猎术以及坐标值都小于10时,可以采用三位数字表示三个参数
注意:创建子图时会覆盖之前创建的重叠的子图
一个figure中只有一个plot时相当于调用了 plt.subplot(111)
创建子图后,如果需要设置每个子图的属性,可以通过
axs[i, j].set_title()设置标题
axs[i, j].set_xlabel() set_ylabel()设置横纵轴标签
3.设置图例
通过设置子图,生成了坐标轴对象AxesSuplot ,利用该对象可以设置相应的图形,再调用plt.legend() 进行图样的设置,可以采用三种方式进行调用
1. ax.legend() 自动填充
ax.legend() 自动填充被加入到图例中的元素被自动检测,通过对每一个设置了label的图形进行检测,直接调用该函数,不需要多余的参数,ax是生成的子图对象(Axessubplot)
2.给已存在的元素添加标签
3.plt.legend((l1, l2, l3), ('label1', 'label2', 'label3'))
plt.legend((l1, l2, l3), ('label1', 'label2', 'label3'))对标签进行详细定义,为了对每一个元素的标记进行完全控制,可以元素以及标签以可迭代的序列的方式传入,元素一般为.Artist(lines, patches) 的序列对象,通过参数 handles 传入 ;相对应的标签是string序列
其他参数:
loc: 整数或者字符串,用于确定图例的位置
Location string
Location code
'best'
0
'upper right'
1
'upper left'
2
'lower left'
3
'lower right'
4
'right'
5
'center left'
6
'center right'
7
'lower center '
8
'upper center'
9
'center'
10
ncol: 图例的列数,默认是1
prop: 设置图例字体
fontsizse: 整数,浮点数,或者{'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}设置字体大小
fancybox: 确定是否使用圆边 bool
shadow: 是否添加图例的阴影
framealpha: 设置背景透明度 也可以使用
leg.get_frmae().set_alpha(0.5)facecolor: 设置背景色
mode: 可以设置为‘expand’ None 设置水平展开
4.显示图片
1.读入图片
可以使用pillow库将图片读入,并且转换为np.array对象,也可以使用matplotlib.image 进行读入,但是只可以读取png文件,可以直接获得相应的arrays
2.图片显示
可以通过对数组进行预处理而进行数据分析,对于一个三(RDB)、四(RGBA)通道图片而言,可以仅获取单一通道的数据进行分析
可以使用直方图进行色彩分析
You can also specify the clim using the returned object
Last updated
Was this helpful?