看《机器学习系统设计》...最近前两章。学习了一些使用Matplotlib可视化数据的方法。在这里整理一下。免责声明:由于本文大部分代码为参考书中的示例,故不提供完整代码,仅提供示例片段,即只能看到部分用法,如有不明之处,敬请谅解。有兴趣的需要在自己的资料上学习和测试。一开始当然还是需要引入我们需要的包:1.绘制散点图使用plt.scatter(x,y)绘制散点图。在下一个示例中可以看到使用plt.plot(x,y)绘制连续曲线。plt.xticks(loc,label)可以自定义x轴刻度的显示。第一个参数表示第二个参数label显示的位置loc。plt.autoscale(tight=True)可以自动调整图像显示的最大比例尺。绘制散点图如下:2.多项式拟合并绘制拟合曲线##多项式拟合效果图:3.绘制多个子图这里是sklearn的iris_dataset(鸢尾花数据集)。这个数据集包含四列,分别是鸢尾花的四个特征:萼片长度(cm)-萼片长度萼片宽度(cm)-萼片宽度首先对数据进行一定程度的处理,主要是对特征名称进行两两排列组合,然后将两个特征中的一个作为x轴,另一个作为y轴进行绘图。这里有一个排列组合参考代码,最好是把pairwisecombinations的情况拿出来。排列组合的结果就是feature_names_2包含了所有的排列组合,它的每一个元素都包含了所有的排列组合。比如第一个元素包含了单个元素的所有排列组合,第二个元素包含了所有的pairwise组合……所以这里把第二个元素拿出来,也就是所有的pairwise组合。下面是for循环中绘制多个子图的方法。对我来说,这里有很多东西要学。比如fori,kinenumerate(feature_names_2[1]):这句话我总记不住。例如从列表中提取一个元素的索引的方法:index1=feature_names.index(k[0]),即index=list.index(element)的形式。例如for循环中绘制子图的方法:plt.subplot(2,3,1+i)例如for循环的如下用法:fort,marker,cinzip(range(3),">ox","rgb"):这里的可视化如下:4.画横线和竖线。比如上面最后一张图,我们就找到了三种鸢尾花分离的方法。这就是我们需要绘制的模型(一条直线)。这时候怎么画?接下来要注意的是plt.vlines(x,y_min,y_max)和plt.hlines(y,x_min,x_max)的用法。此时可视化效果如下:5、动态绘图plt.ion()开启交互模式。plt.show()不再阻止程序执行。注意plt.axis()的用法。可视化:
