【可视技术】检索词的文本分布图如何绘制?

很久没来论坛,曾经活跃的corpusers哪去了?
请教一个可视技术问题。
WS和AntConc都有检索词的文本分布图(就是显示某个检索词在某个文档中出现的位置)。这种绘图技术是怎么实现的?可否提示几个现成可用的VC++绘图控件?
谢!
 
回复: 【可视技术】检索词的文本分布图如何绘制?

就用几乎所有IDE都有的“绘图”控件就行的,它其实是对win32的GDI与GDI+的封装,自己直接用GDI也行的。每个”绘图”都有长与宽的控件属性,正好用来实现你渴望的功能,原理就是把绘图控件长度视为文本全文长度(单词总量),然后把某个单词在全文的出现位置视为绘图控件长度上的某个按比例出现的点,然后在这个Y轴位置画条竖线,竖线的起点是绘图控件的上边缘,终点是绘图控件的下边缘,按比例的意思还包括四舍五入,这样就能画出基于全文单词位置的单词坐标的小竖线了。同时,自己做个函数,传入参数为全文位置比例值,没返回值而是根据比例值去那控件上绘条竖线。这样一套,就实现你要的啦
 
回复: 【可视技术】检索词的文本分布图如何绘制?

谢谢亮哥。
解释得很到位,是这个道理。
我再琢磨琢磨。
 
回复: 【可视技术】检索词的文本分布图如何绘制?

另一个思路是“HTML绘图”,优势更强,能让每条小竖线都能响应鼠标悬浮而出现本线的精确值,这是GDI技术都难以轻松实现的效果。第二条思路有4条小路: SVG, Canvas, VML, HTMLayout。前3条小路最好采用基于jQuery的jplot或jstat之类的绘图框架,这些框架易学且内置了跨浏览器的广泛兼容性。第4条小路的本质是内置了个精简高效的网页渲染引擎,所以它内存占用大幅降低。
 
回复: 【可视技术】检索词的文本分布图如何绘制?

如果不限于在主窗体的控件上绘图,就有第三条大路: 调用COM,,弹出IE新窗口,用一个迷你矩形绿色蓝色之类的竖线图片来代替绘图。这样的原理的情况下,每条竖线就是预先准备的那个小图片,每次新增一条竖线就只用新增一句<img src="..." style="position:xxx,yyy;" />就完事了
 
回复: 【可视技术】检索词的文本分布图如何绘制?

其实,上述大路小路都无法把当前图像效果让用户另存为的,所以我建议的第4条大路是: 用"图片框"控件加载你用GDI技术或phantomJS技术在内存中绘制且保存到硬盘的jpg或gif或bmp格式的图片文件,这样就能另存为了,因为独立的图片已经生成在某个磁盘路径上啦!
 
回复: 【可视技术】检索词的文本分布图如何绘制?

第5条大路是以COM方式调用flash在主窗体上形成自定义的特殊控件;第6条大路是以COM方式调用office word或excel的绘图功能或图表功能,然后在Office中呈现;第7条大路是进程方式调用已经安装的R语言的绘图功能;第8条大路是安装调用tcl\tk,因为R语言绘图就是基于tcl\tk的。
 
回复: 【可视技术】检索词的文本分布图如何绘制?

如果你愿意采用纯C或纯C++的开源免费的GUI框架,我就推荐GTK+和wxWidgets,前者是纯C而后者是C++的,两框架都是跨平台且有现成的与多种编程语言的绑定。哈哈,凑足十条大路了,十全十美,扯远了点,但愿能为编程爱好者拓思路、燃灵感
 
回复: 【可视技术】检索词的文本分布图如何绘制?

李博士果然厉害,开源、COM这些恐怕不是一般人能写的。感觉HTML+jquery应该是首选,简单易用。Flash AS实现起来应该效果会更好,更美观。
 
Back
顶部