【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

经常读工科论文的同学都知道,用图表达实验结果是很重要的一项工作。如果把论文看成是八股文的话,那么基本的步骤就是前人工作论述、新算法的提出、新算法的数学原理、新算法的详细流程、新算法的实验结果。所以说,怎么用图来表示实验结果是非常重要的。之前,大部分同学都习惯用matlab来画图。matlab是很方便,但是它的缺点就是安装麻烦,且收费较高。但是现在的话,我们除了matlab之外还有其他的方法可以绘图,python + matplotlib就是不错的一个方法。 matplotlib是python下面很方便的一个工具库,既可以画2d图,也可以画3d图,很方便。下面逐个举例,

1、动态直方图

"""
==================
Animated histogram
==================This example shows how to use a path patch to draw a bunch of
rectangles for an animated histogram."""
import numpy as npimport matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.path as path
import matplotlib.animation as animationfig, ax = plt.subplots()# histogram our data with numpy
data = np.random.randn(1000)
n, bins = np.histogram(data, 100)# get the corners of the rectangles for the histogram
left = np.array(bins[:-1])
right = np.array(bins[1:])
bottom = np.zeros(len(left))
top = bottom + n
nrects = len(left)# here comes the tricky part -- we have to set up the vertex and path
# codes arrays using moveto, lineto and closepoly# for each rect: 1 for the MOVETO, 3 for the LINETO, 1 for the
# CLOSEPOLY; the vert for the closepoly is ignored but we still need
# it to keep the codes aligned with the vertices
nverts = nrects*(1 + 3 + 1)
verts = np.zeros((nverts, 2))
codes = np.ones(nverts, int) * path.Path.LINETO
codes[0::5] = path.Path.MOVETO
codes[4::5] = path.Path.CLOSEPOLY
verts[0::5, 0] = left
verts[0::5, 1] = bottom
verts[1::5, 0] = left
verts[1::5, 1] = top
verts[2::5, 0] = right
verts[2::5, 1] = top
verts[3::5, 0] = right
verts[3::5, 1] = bottombarpath = path.Path(verts, codes)
patch = patches.PathPatch(barpath, facecolor='green', edgecolor='yellow', alpha=0.5)
ax.add_patch(patch)ax.set_xlim(left[0], right[-1])
ax.set_ylim(bottom.min(), top.max())def animate(i):# simulate new data coming indata = np.random.randn(1000)n, bins = np.histogram(data, 100)top = bottom + nverts[1::5, 1] = topverts[2::5, 1] = topreturn [patch, ]ani = animation.FuncAnimation(fig, animate, 100, repeat=False, blit=True)
plt.show()

2、块状图

"""
========
Barchart
========A bar plot with errorbars and height labels on individual bars
"""
import numpy as np
import matplotlib.pyplot as pltN = 5
men_means = (20, 35, 30, 35, 27)
men_std = (2, 3, 4, 1, 2)ind = np.arange(N)  # the x locations for the groups
width = 0.35       # the width of the barsfig, ax = plt.subplots()
rects1 = ax.bar(ind, men_means, width, color='r', yerr=men_std)women_means = (25, 32, 34, 20, 25)
women_std = (3, 5, 2, 3, 3)
rects2 = ax.bar(ind + width, women_means, width, color='y', yerr=women_std)# add some text for labels, title and axes ticks
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind + width / 2)
ax.set_xticklabels(('G1', 'G2', 'G3', 'G4', 'G5'))ax.legend((rects1[0], rects2[0]), ('Men', 'Women'))def autolabel(rects):"""Attach a text label above each bar displaying its height"""for rect in rects:height = rect.get_height()ax.text(rect.get_x() + rect.get_width()/2., 1.05*height,'%d' % int(height),ha='center', va='bottom')autolabel(rects1)
autolabel(rects2)plt.show()

3、事件响应

"""
Show how to connect to keypress events
"""
from __future__ import print_function
import sys
import numpy as np
import matplotlib.pyplot as pltdef press(event):print('press', event.key)sys.stdout.flush()if event.key == 'x':visible = xl.get_visible()xl.set_visible(not visible)fig.canvas.draw()fig, ax = plt.subplots()fig.canvas.mpl_connect('key_press_event', press)ax.plot(np.random.rand(12), np.random.rand(12), 'go')
xl = ax.set_xlabel('easy come, easy go')
ax.set_title('Press a key')
plt.show()

上面这些实例代码都是从官网下载下来的,如果要查看效果的话,大家可以自己实际运行试试看。官网地址在这。虽然也有很多同学对matplotlib做了介绍,但是还是建议大家多去官网看看,毕竟官网给出的范例代码要比大家相像的多得多,总有几个是适合自己的。

机器学习与计算机视觉(绘图)相关推荐

  1. 机器学习和计算机视觉相关的数学

    kinPark 2015-01-16 1:07:15 机器学习 评论(1) MIT一牛人对数学在机器学习中的作用给的评述,写得很实际 机器学习和计算机视觉都是很多种数学的交汇场.看着不同的理论体系的交 ...

  2. 机器学习和计算机视觉有关的数学

    1.线性代数(Linear Algebra): 我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要.这门学科对于Learning是必备的基础,对它的透彻掌握是必不可少的.我在科大一 ...

  3. 林达华-和机器学习和计算机视觉相关的数学

    以下文章转载自哪里也不清楚了,谢谢原著作者吧!! 和机器学习和计算机视觉相关的数学之一 (以下转自一位MIT牛人的空间文章,写得很实际:) 作者:Dahua 感觉数学似乎总是不够的.这些日子为了解决r ...

  4. 和机器学习和计算机视觉相关的数学

    http://blog.csdn.net/zouxy09/article/details/8084511 和机器学习和计算机视觉相关的数学之一 (以下转自一位MIT牛人的空间文章,写得很实际:) 作者 ...

  5. 转载-【讨论】为什么不去读顶级会议上的论文?适应于机器学习、计算机视觉和人工智能

    看了版上很多贴子,发现很多版友都在问"热门研究方向"."最新方法"等.有同学建议国内某教授的教材.或者CNKI.或者某些SCI期刊.每当看到这种问题,我都有点纳 ...

  6. 澳大利亚国立大学计算机学院,ANU澳大利亚国立大学机器学习与计算机视觉硕士Master of Machine Learning and Computer Vision...

    机器学习与计算机视觉硕士Master of Machine Learning and Computer Vision是澳大利亚国立大学研究生申请的热门专业,本文重点介绍了机器学习与计算机视觉硕士研究生 ...

  7. 机器学习与计算机视觉入门项目——视频投篮检测(一)

    机器学习与计算机视觉入门项目--视频投篮检测(一) 随着机器学习.深度学习技术的迅猛发展,计算机视觉无疑是近年来发展最快的AI领域之一.正因如此,互联网上有关计算机视觉和机器学习.深度学习的社区.博文 ...

  8. 机器学习与计算机视觉入门项目——视频投篮检测(二)

    机器学习与计算机视觉入门项目--视频投篮检测(二) 一.手工特征与CNN特征 在上一次的博客中,介绍了计算机视觉和机器学习的关系.篮球进球检测的基本问题和数据集的制作.这次的我们主要介绍如何从原始图像 ...

  9. 机器学习与计算机视觉入门项目——视频投篮检测(三)

    机器学习与计算机视觉入门项目--视频投篮检测(三) 分类器的设计和选择 几种损失函数 Logistic回归 基本原理 损失函数 Logistic回归的求解--梯度下降法 损失函数的梯度计算 在第二部分 ...

  10. 机器学习与计算机视觉大牛族谱

    在机器学习.计算机视觉和人工智能领域,顶级会议才是王道.国内教材和CNKI上的至少是N年前的东西.有人会质疑这些会议都只是EI.是的,这的确非常特殊:在别的大部分领域,会议都是盛会,比如society ...

最新文章

  1. apache的prefork和workder模式
  2. Spring5 版本新特性简述
  3. python的xpath用法_Python爬虫杂记 - Xpath高级用法
  4. 云计算与SaaS的关系 :新计算时代将来临
  5. python36_第36 p,就这几个方法,Python中文件的操作
  6. 用友OA漏洞复现手册
  7. 介绍一款免费的词典与文本翻译软件-灵格斯 lingoes
  8. XXL-JOB漏洞解决,Eclipse Jetty HTTP请求走私漏洞
  9. 龙芯源码编译mysql_龙芯服务器安装总结
  10. EXCEL表格数据规范规则-日期时间篇
  11. 迅捷pdf转换器——如何提取pdf中的图片
  12. Web.config配置错误页
  13. MMKV-Android中的存储框架
  14. 有线耳机真成了“时代的弃儿”?
  15. 配置IIS应用程序池
  16. iPhone 11今晚发!我已决定不买,不只是因为钱的问题
  17. JAVA--第七周实验--输出24个希腊字母与26个大写英文字母--运用类的继承
  18. 智利移民搬到智利时的进口关税和文书工作
  19. 晶振/RC振荡器/冷启动/热启动 理解
  20. 小马哥-----高仿机修复摄像头实例说明 其他机型可借鉴

热门文章

  1. Java简单方法批量修改Windows文件夹下的文件名(简单IO使用)
  2. Material Design实现的美观的登录界面
  3. swift属性观察者机智
  4. VC++绘图时,利用双缓冲解决屏幕闪烁 转载
  5. 子查询四(在select子句中使用子查询)
  6. eclipse新建tomcat server但是总是报404的解决方法
  7. c# list排序的三种实现方式
  8. GCC,GDB,Makefile
  9. P3185 [HNOI2007]分裂游戏
  10. 记录webpack commonJs 加载文件规则