【WaaCaa】一款开源科学作图/数据可视化工具 —— 诞生篇

作为一个理工男。用过了形形色色能够用于科学作图/数据可视化软件:从大学时做实验课推荐用于分析简单採集数据的 Origin; 毕业论文时用来呈现实验时序信号和离线分析脑电信号的 MATLAB。后面还发现了 Octave 以及 Gnuplot ; 以及实验室师兄推荐用的 Matplotlib 软件; 工作后随着 HTML5 大红大紫,也发现了一些基于 Web 前端的软件,比方 d3js/Highcharts, 还有 Python 的 Bokeh…… 这些软件都有各自的优缺点,因为自己平时工作会做一些算法研究、数据展示,而且也认为有我这样需求的人还有些。所以着手做启动了
WaaCaa 项目,主要基于这些需求

  1. 基本作图与信息图:基本作图的支持不用说了:基于直角坐标系的散点图、折线图、柱状图,以及极坐标系的饼图、雷达图。另外还须要比較高级的信息图。用户只须要准备好输入数据,然后指定类型的图就呈现出来了。
  2. 良好的多语言接口支持:眼下较为流行的,比方 MATLAB/Matplotlib/Highcharts, 可是他们都是语言绑定的,这样导致使用不同的工具,绘制/数据交互的风格/效果不一致;
  3. 良好的视觉效果交互体验:良好的视觉效果和交互体验绝对不不过使用者"赏心悦目"的须要,更是在做数据/算法研究时候便于理解数据的基本要求。举个样例。在一张图的数据被 clear 或者加入新数据后,假设有缓动(easing)/补间动画(animation)的时候,视口(view port)的缓慢变化会不会让用户更便于理解当中数据范围(range)的变化呢?——至少我是这么认为的。没有animation的图上数据的范围(range)发生图片让人非常不舒服;还有鼠标交互(包含拖拽平移、zoom
    in/out、滚轮支持);
  4. 快速绘制能力:因为我有做一些音频/音乐方面的算法研究。而新兴的基于 HTML5 的工具远远不能满足我做这方面研究的需求——在音频算法研究过程中。往往须要把时间划分到毫秒级别时间窗。假设要跟播放速度一致。那么往往就须要 10~100 Hz 的绘制频率了;
  5. 跨平台支持:尽管 Windows 用户非常多,可是做科研的人也有不少 Mac OS X 用户(以及更少数的 Linux 桌面用户)。这款工具须要跨操作系统平台的支持。而且保持不同系统上的体验一致。
  6. 图片导出功能:把绘制好的图片导出成经常使用的交互格式,包含有压缩和没压缩的位图(bmp, png, jpg)以及矢量图(如 eps)。

基于这些需求,我是这么做技术选型的:

  • 本作图软件作为一个 Server,提供 TCP Socket API,方便实现多语言接口支持;
  • 包含窗体的用户交互和图形绘制、以及中间的逻辑用 C++ 编写,便于跨平台和快速绘制(选用C++11标准,为了更少的语言坑);
  • 绘制方面,Windows 选用 Direct3D/Direct2D 方案,Mac OS X 以及 Linux X Window 选用 OpenGL 绘制;

从技术选型到如今,用零碎时间coding了两三个月了。眼下 WaaCaa 还在完好中(仅完毕了 Windows 版本号,绘制基本图类型,仅仅做了 C++ 用户接口)。project已经公布到 github 。眼下的效果图 https://github.com/ImplFancy/WaaCaa/blob/master/README.md

欢迎有志者联系我,一起完好它。兴许会在本博客书写 WaaCaa 相关的技术文章。

WaaCaa 项目地址:https://github.com/ImplFancy/WaaCaa

时间: 2024-10-13 06:03:09

【WaaCaa】一款开源科学作图/数据可视化工具 —— 诞生篇的相关文章

21款酷炫的数据可视化工具

辛辛苦苦分析一堆大数据,竟然没人看!如果你正着手于从数据中洞察出有用信息,那你所需要的正是——数据可视化.俗话说,有图有真相,一图胜千言,取悦了眼球,剩下的都好说. 贵妃周一巨献!!挖掘了21款炙手可热的数据可视化工具,干净利落的高颜值信息图,就要这样做! FushionCarts FusionCharts Suite XT不仅可以为带给你漂亮的图表,还能帮你制作出生动的动画.巧妙的设计和丰富的交互性.它在PC端.Mac.iPad.iPhone和Android平台都可兼容,具有很好的用户体验一致

推荐14款基于javascript的数据可视化工具

随着数据可视化概念逐年火热,有较多优秀的图表开源库和制作工具脱颖而出,下面,我们就拿其中比较有名的 14个产品进行简要介绍. 1.AnyChart 链接:http://www.anychart.com/ AnyChart 是基于 Flash/JavaScript(HTML5) 的图表解决方案,它可以轻松地跨浏览器.跨平台工作.除了基础的图表功能外,它还有收费的交互式图表和仪表功能.它可以通过 XML 格式获取数据,该方式让开发人员非常灵活地控制图表上的每一个数据点,而当图表数据点数量偏大时,则可

CSDN开源夏令营 百度数据可视化实践 ECharts(6) 期中总结

期中总结 (1)首先感谢林峰老师的辛勤指导!! 通过半个多月的培训,林峰老师讲解了ECharts总体框架和其中各个部分:图类.组件.接口.基础库的具有应用方法和应该把握的细节,并通过实际的例子熟悉和掌握各个控件.只有打牢基础才能正正的为下步的工作做好准备,熟练的属性代码的编程技巧,才能做出更好的专题. (2)第一次任务重点总结: 要求:了解ECharts特性中列举的每一项特性,并能找到实例中的例子,并且在实例中操作. 重点问题: 1)ECharts一种支持多少种图表?有多少个组件?列举出中英文名

CSDN开源夏令营 百度数据可视化实践 ECharts(2)

将ECharts引入项目中的几种详细方法讲解 (1)打好基本功 首先感谢林峰老师!给我们的悉心指导.我们之所以学习ECharts和Zrender图表组件,为了就是能够将图表应用到我们的实际情况中 来,进而让图表的战士能给我们一种更加人性化的方式呈现给用户.所有我们必须熟悉ECharts中相关组件.下面的例子都以line为例. (2)将ECharts引入项目共有三种方式 2.1)第一种方式-模块化包引入 模块化包引入模式也可以称为开发模式,是开发时最好的方法,不管是开发echarts还是用echa

CSDN开源夏令营 百度数据可视化实践 ECharts(1)

总体规划 (1)选题: 通过了解林峰老师的专题中国主要城市空气质量实况.中国经济十年时空漫游和中国人口流动大潮,涉及了人口.经济和民生等方面的内容,在这里我选择中国高考,作为我的切入点. 高考,一个永恒的话题,是一场你我都值得经历的一场无硝烟的战争.有人曾说:每个高考的孩子都背负着几代人的希望,每个高考的背后都有众多关注的眼睛.人生能有几回搏?虽然失去了许多,但终究会收获很多. (2)题目 2006-2014高考各省市报名人数及录取人数汇总专题 (3)搜集数据资料 工欲善其事,必先利其器.数据的

55种开源数据可视化工具简介

55种开源数据可视化工具简介 雪姬 2015-04-21 11:47:56 数据可视化 评论(2)   数据时代数据可视化成为理解和表达数据的有效甚至是唯一的手段. 一共56个,盘点最实用的大数据可视化分析工具 工欲善其事必先利其器,本文对55个流行的数据可视化工具开源协议,主页,文档,案例等资源的进行简单介绍,其中包括著名的D3.js,R,Gephi,Raphaël,Processing.js,Tableau Public,Google Chart Tools,Arbor.js等,资料来源ht

CSDN开源夏令营 百度数据可视化实践 ECharts(8)

(1)前言 首先谢谢林峰老师,继续接着第七篇提到的内容,CSS布局确实很累,感觉不好看了就的调整,总的看起来的高大上嘛,好了废话不再多说.今天主要就先讲解一个页面的内容,对于CSS布局后面讲会详细的介绍给大家. 另外我写的搭配时间轴地图扩展被ECharts采用,http://echarts.baidu.com/doc/example/map19.html (2)总体内容 专题包含有如下五块: 1)大海战全程: 实时描述大海战 2)国力对比篇: 中日战前.战后国力对比 3)装备对比篇: 海军实力全

【55种开源数据可视化工具简介】

大数据时代数据可视化成为理解和表达数据的有效甚至是唯一的手段. 工欲善其事必先利其器,本文对55个流行的数据可视化工具开源协议,主页,文档,案例等资源的进行简单介绍,其中包括著名的D3.js,R,Gephi,Rapha?l,Processing.js,Tableau Public,Google Chart Tools,Arbor.js等,资料来源http://selection.datavisualization.ch/ 下面安照字母顺序进行介绍(已更新至第11个,未完待续--) 1 Arbor

三款开源科学计算软件平台

Mathics(http://www.mathics.org/) 基于Python开发,是Mathematica的替代品 FEnics(http://fenicsproject.org/documentation/) Englab(http://englab.bugfest.net/) 有待成熟 三款开源科学计算软件平台,布布扣,bubuko.com