摘要:
开始看《编程语言实现模式》,补习了一下Parser的基础知识。英文是Wiki上的,中文是自己理解翻译的。Wiki LALR parserhttp://en.wikipedia.org/wiki/LALR_parserin 1965, Donald Knuth invented the LR parser (Left to Right, Rightmost derivation). The LR parser can recognize any deterministic context-free language in linear-bounded time. However, rightmo 阅读全文
摘要:
最开始使用Matplotlib,一是因为它不需要像Matlab一样花很长时间启动一个图形界面,二是它可以直接保存为.eps格式。在图像显示出来之后,在左下角有几个按钮,最后一个就是保存,在保存的对话框选择.eps格式即可。另一种方式就是在程序里面使用pyplot.savefig(name,format="eps"),可以用format指定格式为eps,也可以不使用format,而是写在name里面,它会自动从name里面找到扩展名来决定格式。虽然这样得到了.eps格式的图像,但是它的周围有空白的地方,有两种方法来去掉这些空白,一种方法是使用gsview,在windows上, 阅读全文
摘要:
这次介绍pyplot如何画直方统计图,并且画出最合适的轮廓线。这是Matplotlib自带的一个例子,示例程序example/pyplot_examples/histdiagram_demo.py。先看效果图,在看代码,#!/usr/bin/env pythonimport numpy as npimport matplotlib.mlab as mlabimport matplotlib.pyplot as pltmu, sigma = 100, 15x = mu + sigma*np.random.randn(10000)# the histogram of the datan, bins 阅读全文
摘要:
这次介绍Matplotlib里面画图的结构,各种Artists。之前只是知道怎么用pyplot画图,没有去理解pyplot,现在整理一下自己的理解。在pyplot(或者是更全一点的matplotlib)里面,有两类Artists,一个是primitives,元素,表示我们想要画出来的标准的图像对象,像Line2D(二维的曲线),Rectangle,Text,AxesImage等;另一个是containers,用来存放元素,如Axis,Axes和Figure.每个Artist有很多可以设置的属性,如下图所示,这里有与boudningbox相关的内容,后面或许会用到。既然每个Artist有这些属性 阅读全文
摘要:
前面说过的,有怎样画局部放大图的,例如左边放原图,右边放局部放大的图,并且在原图中用一个方框或者什么,把要放大的部分框起来,需要的话还可以用两条线从方框指向放大的图,效果如下图所示,这里主要介绍如何画方框和两条线。画方框,使用了画连接方框四个顶点的四条线段就可以了,从某个点绕个圈再回到起点,就画出了方框,使用pyplot(x,y),还可以方便地指定颜色,线宽等。然后是画跨子图的线,这里使用连接线,在matplotlib.patches有一个ConnectionPatch类型,就是用的这个,它可以用在一个或多个子图之间画线,annotate好像只能在一个子图里面画箭头,应该可以没有箭头,那就是一 阅读全文
摘要:
在使用pyplot画图的时候,有时会需要在图上标注一些文字,如果曲线靠的比较近,最好还能用箭头指出标注文字和曲线的对应关系。这里就介绍文字标注和箭头的使用。添加标注使用pyplot.text,由pyplot或者subplot调用。下面是可以选择的参数,text(tx,ty,fontsize=fs,verticalalignment=va,horizontalalignment=ha,...)其中,tx和ty指定放置文字的位置,va和ha指定对其方式,可以是top,bottom,center或者left,right,center,还可以使文字带有边框,边框形状还可以是箭头,并指定方向。添加箭头使 阅读全文
摘要:
之前介绍了pyplot里画简单的数据曲线,接下来介绍subplot相关的内容。subplot是为了在一张图里放多个子图,与Matlab里的subplot类似。pyplot是一个有状态的对象,包含了当前的图,画图区域,等。pyplot通过调用subplot或者add_subplot来增加子图,如p1 = plt.subplot(211) 或者 p1 = plt.subplot(2,1,1), 表示创建一个2行,1列的图,p1为第一个子图,然后在p1上画曲线,设置标注标题图例等,就可以使用p1来调用相关的函数,与pyplot相同的是,可以直接使用pyplot画图,添加label,等,也可以是使用p 阅读全文
摘要:
最近要花一些图,本来是打算用matlab的,但是matlab有时候莫名其妙的挂掉,忍受不了,便找到了matplotlib。我熟悉并且喜欢Python,所以matplotlib替代了matlab。使用了几天,感觉还好,不过觉得文档不够全,网页版的有些链接打不开,pdf版本内容也就那么多,很多想找的内容都找不到,于是去看源码。下面整理一些使用心得。主要是用到matplotlib里面的pyplot和与其相关的。先看简单的,画一张简单的函数曲线图,#导入pyplot,文档里面的例子通常将其别名为pltimport matplotlib.pyplot as plt#创建一幅图plt.figure()#画 阅读全文
摘要:
前几天使用list的排序功能,出现了一点问题,来总结一下。定义一个简单的节点类,包含一个字符串和一个整数,并重载了小于操作,根据整数的大小进行比较。class Node{ public: Node(string nm,int i) { name = nm; id = i; } void Print() { cout << name << ":" << id << endl; } friend bool operator < (... 阅读全文
摘要:
开始配置编程环境,主要试Python和C/C++的环境,考虑使用Eclipse的PyDev和CDT。 先是安装Eclipse,软件管理器提供的版本是最新版本,但是下载速度过慢。在官网上直接下载要快很多。所以最好是从官网下载。 Eclipse的压缩包解压之后,就可以运行Eclipse了。可以考虑把它放到/usr/local/下面。然后给Eclipse建立一个快捷方式。 然后安装插件,网上一般介绍两种方法,一种是使用Eclipse的插件管理,在Help菜单下面的Install New Software,添加对应的源,试了一下,不知道什么原因,虽然可以抓取到插件的信息,但在继续往下安装检查... 阅读全文