简介
用pcolor可以来画2维图,即有两个自变量x,y,和一个因变量C。注意的点:
-
pcolor是用格点来表示C值。故应先用
np.meshgrid(x,y)
来生成二维的x和y坐标点。
-
C的行索引对应y坐标,列索引对应x坐标。所以画图时,一般将计算好的C转置。
-
pcolor和pcolor功能是相同的,
官方文档
建议用pcolormesh,它的速度会更快。
def f(x,y):
return (x**2+y-11)**2+(x+y**2-7)**2
x = np.linspace(-7,7,50)
y = np.linspace(-7,7,50)
z = np.zeros((50,50))
for i,a in enumerate(x):
for j,b in enumerate(y):
z[i,j] = f(a,b)
xx,yy = np.meshgrid(x,y)
fig, ax = plt.subplots()
c = ax.pcolormesh(xx,yy,z.T,cmap='jet')
fig.colorbar(c, ax=ax)
1 、第一种数组声明方式:var 数组名 = [元素1, 元素2, …],这种定义方式比较常用。例如:
var arr=[1,2,3];
var arr1=['字符串',1,null];
arr – 变量名
2、第二种数组声明方式:var 数组名 = new
不对x,y做坐标处理,直接由meshgrid生成格点坐标,那么结果图中数据点是体现在网格线上,直观上会觉得少一列数据。
对x,y先做个坐标处理,再由meshgrid生成格点坐标,那么结果图中数据点就是体现在网格中央,及类似matlab imagesc的效果
import numpy as np
import matplotlib.pyplot as plt
pcolormesh结果出现白线的解决方法
用pyplot的
pcolormesh的时候最终结果如果存成pdf格式,某些阅读器会显示出白线,参考stackoverflow上的问答,
pcolormesh是单独画一个一个小方块的,不同的阅读器处理方式不同,因此一些阅读器会出现白线。解决方法之一是使用imshow,例如:
plt.imshow(z, interpolation='nearest', cmap='Blues', extent=[x.min(), x.max(), y.min(), y.max()])
在机器学习中如果要对训练好的分类器进行分类辩解的可视化,就需要用到matplotlib.pyplot.pcolormesh()这一方程
其description为:‘Create a pseudocolor plot with a non-regular rectangular grid.’方法中的pcolor一词为pseudocolor缩写,中文翻译为伪色彩。
伪彩色图像的含义是,每个像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作彩色查找表(color look-up table,CLU