基于javascript的简单数据可视化:DVisual

也是好久没更新博客了,主要是之前都是学到了新东西新算法就写篇博客总结一下,去年也是到处实习了一段时间,没有太多时间去吃透大部头,所以也就好久没有更新了。

最近看了不少数据可视化的书,所以也就顺理成章想做点东西,同时准备把『数据可视化套件开发』这个作为毕业设计搞一搞,花了一两周写了一个DVisual出来,目前倒是只支持一些基本的图表绘制,后面可能会加入一些比较炫酷的图标,以及鼠标操作等功能吧。

当然如果你想在在html上绘制简单图表,并且没有其它特殊要求的话,现在也是可以试用一下的,本文就简单用中文介绍一些使用方法把,感觉我这个用起来还是蛮方便的

Github地址      ,欢迎点star啊~~~~~~

还有一个tutorial,英文的:Tutorial地址 ,嫌英文麻烦的就看下边吧:

====================================================================

1.如何开始

a. 首先是把这个dvisual.js文件添加到你的html代码里面.

<script type="text/javascript" src="dvisual.js"></script>

b.然后新建一个实例,传入你的canvas的id.

dvisual = new DVisual('canvas_id');

c.然后你就可以先建立各种图表元素了,所有图表元素类我都有一个统一的方法draw(dv),所以复杂图像都是由点线面和文字这些基础图像组合起来的。这里我们加入一个bar chart:所有的参数都是用过args传入的,args是一个类似字典的东西,照着下面这样写就好了

args = {'X':["ClassA","ClassB","ClassC","ClassD"]
       ,'Y':[5,9,4,8]};
bar = new DVBarChart(args);

d.把图表加入到我们的DVisual实例即可,最后使用draw()进行绘制

dvisual.addElement(bar);
dvisual.draw();

这样我们就能得到这样一幅图像了:你也可以吧上面的c,d合并到一句话里并不影响图像的生成.

2.可用的类和可选参数。

这个可以从doc里找到详细的说明。在这里简单总结一下图表的参数吧(你应该不会用到点线面那些基础图形元素)。

a.DVBarchart()

这就是我们用来绘制上面那个图形的类了,除了通常的bar之外,它还可以绘制stacked bar,上代码看看:

args = {'X':["bar1","bar1","bar3"],
        'stackedClass':["stacked_1","stacked_2"],
        'stackedY':[[1,2],[3,4],[5,6]],
        'style':'stacked',
        'stackedColor':[new DVColor(55,185,241,0.5),new DVColor(207,231,62,0.5)]}

这是给出了args的内容,其它和第一步中是一样的,style参数控制图表的类型。可以看到这时我们没有传入"Y"参数了,因为此时的数据已经不是二维的了,而是每一个bar都有几个数据,所以我们改用stackedY来传入数值,stackedClass来传入每一个bar上堆叠的数据名称,至于stackedColor,作用显而易见,当然你也可以不传入,这样它就是随机的(这对所有的color都是适用的),来看看效果:

b.DVMulBarChart

如果我们想建立一个多维的柱状图,也就是每个标签下面有多个bar的,那就需要使用DVMulBarChart了:

args = {'X':["A",'B'],'Ys':[[3,2,4],[5,7,8]],'Z':["first","second","third"]}
dvisual.addElement(new DVMulBarChart(args));

『Y』同样不需要了,因为此时对于每个X[I],都应该对应一个Z.length长的数组,所以就应该是上面这个样子,绘制的图像如下:

c.DVLineChart()

说到图,最先想到的其实可能是散点图和线图,这在DVLineChart中给予了实现,它不光支持散点和连线,还有区域图(area),也就是与x轴构成的区域;以及气泡图,不多说,来看看例子:

divisual.addElement(new DVLineChart({'X':[1,2,3,4,5,6],
                                     'Y':[1,2,3,4,5,6],
                                     'style':'dot|line'}));

X,Y就是所有点的x值和y值,很直观,下面的style这里设置为dot|line,它一共有四种:dot,line,area和bubble,其中前三种是可以组合使用的,bubble因为有涉及到数据不同,所以只能单独使用。绘图如下:(如果把style改为‘dot|line|area‘)就是右边这样 :

对于气泡图,和上面不同的是我们要添加每个bubble的半径,所以应该是这样的:

divisual.addElement(new DVLineChart({'X':[1,2,3,4,5,6],'Y':[1,2,3,4,5,6],
                                    'bubbleRadius':[1,2,3,4,5,6],
                                    'style':'bubble'}));

d.DVMulLineChart

当然,和bar一样,如果我们有多条线段或者多种bubble要绘制,就需要用到DVMulLineChart了

dvisual.addElement(new DVMulLineChart({'Xs':[[1,-2,3,4,5,6],[1,2,3,4,5,6]],
                                        'Ys':[[1,2,3,4,3,6],[-3,5,2,7,5,2]],
                                        'Zs':[[3,2,1,4,5,7],[3,2,7,6,8,4]],
                                        'classes':['A','B'],
                                        'style':'bubble'}));

可以看出来,参数都从X,Y,bubbleRadius 变成了Xs,Ys,Zs,「classes」表示了不同种类数据的名称,当然你也可以传入颜色colors,这里并没有添加,就是随机的。

可以看到绘制出来的图像的原点并不在最左下角,所以图像会用红色的线来标识出0值坐标

e.DVHistChart

这个比较简单,传入一系列的值即可,你也可以通过sec设置统计的间隔,以及yStyle设置显示个数还是百分比。

dviusal.addElement(new DVHistChart( {'X':[4.845526425588935, 4.259344936827764, 3.8098053040235538, 1.952000211472447, 4.635797415383389, 4.024019790968537, 3.3602908242946734, 5.904528760874355, 4.198898591038685, 3.590128975916881, 4.332713128186926, 3.1865396813511784, 2.5162865661667198, 4.712821025260148, 3.71360994330834, 3.8493524061913744, 3.7159258918857536, 5.51399789047954, 3.6300232108929382, 3.545076471891732, 3.0676446553817147, 3.2444930114999093, 3.5479330646839933, 4.976746738515327, 3.9332813190873934, 5.006312033998867, 3.404727953308918, 3.5033407619438233, 3.079551989356432, 3.8632840581876042, 3.157986089467415, 3.4195326824382866, 3.8080356643280124, 2.957309227091329, 4.118392736251364, 3.6411410599078917, 3.7624757886685964, 4.8647889699576226, 5.21796736714372, 3.976067213322964, 5.126928746440573, 3.974656703704623, 3.233580498913617, 4.395312593899124, 4.068962687058488, 3.891929789953702, 4.469243993566407, 4.334454703693426, 3.9209889294562856, 3.4434304992247453, 4.497549493028219, 3.416343894896489, 4.665283209646114, 4.680609105269387, 4.983997832840491, 3.6712180044043317, 3.265064804033842, 3.4698542145767295, 3.600410757683259, 3.258705331315113, 3.4711330714824475, 5.850035283124024, 4.4280162444420395, 2.9032881754752737, 3.8438971175165753, 4.876106607781984, 2.558687703308084, 3.5013932005344044, 3.5555419525521454, 5.1907150725045845, 4.011722379620389, 3.527897189378135, 4.10495828533477, 6.62176464809461, 4.2726902430636144, 3.900071148628866, 2.575252541466217, 5.328266087881893, 2.5589399335225336, 5.724120236174612, 4.4515392634560085, 4.7151321389757594, 2.8531894976428953, 3.4703243319242265, 2.2640882905146724, 5.0719845838182795, 3.574145032952119, 4.477360695988922, 5.779618114520955, 4.456319741265055, 3.8274174274387756, 6.050865845999171, 5.286157426108568, 4.197556181625366, 3.2386132037552726, 4.409816073319034, 4.225877761979799, 5.313407146149141, 5.042124222577709, 3.979632468039347],
            'yStyle':'value'}))

f.DVPieChart 和 DVRadarChart

这两个图的参数都很简单,直接参看 Tutorial 就可以了。

3.总结

这个组件目前只实现了这些基础的东西,尽可能做到完善,诸如x,y轴的名字,表格是否绘制,Pie中显示的内容,这些你都可以通过参数进行设定的,如果可能后面会加入一些新的高大上的图形,还有增加鼠标的操作响应等等,会继续丰富它就是了~~~~

最后,在github求个star~~~!!!~~~!!!

时间: 2024-10-10 09:30:17

基于javascript的简单数据可视化:DVisual的相关文章

快速基于echarts的大数据可视化

[Author]: kwu 快速基于echarts的大数据可视化,echarts纯粹的js实现的图表工具,快速开发的步骤如下: 1.引入echarts的依赖js库 <script type="text/javascript" src="js/esl/esl.js"></script> <script type="text/javascript" src="js/echarts.js"><

基于echarts组件制作数据可视化大屏

什么是数据可视化:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.在实际工作中,数据分析能够帮助管理者进行判断和决策,以便采取适当策略与行动. 数据可视化分析有什么作用:1.现状分析告诉你过去发生了什么,告诉你企业现阶段的整体运营情况,通过各个经营指标的完成情况来衡量企业的运营状态,以说明企业整体运营是更好了还是坏了,好的程度是如何,坏的程度又到哪里. 2.原因分析告诉你某一现状为什么发生,经过第一阶段的现状分析,我们对企业的运营情况有了一个基本的了解,但是不知道运营情况具体好在哪

Hadoop-02 基于Hadoop的JavaEE数据可视化简易案例

需求 1.统计音乐点播次数 2.使用echarts柱状图显示每首音乐的点播次数 项目结构 创建JavaEE项目 统计播放次数Job关键代码 package com.etc.mc; import java.io.IOException; import java.util.HashMap; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.had

pgspider基于pg 的高性能数据可视化sql 集群引擎

pgspider 是在pg 源码中直接打的patch,增强了FDW 的功能 执行的特性 多租户 并行处理 数据下推 说明 pgspider 是一个很不错的扩展,目前官方已经支持了sqlite,mysql,influxdb 等数据库 参考资料 https://github.com/pgspider/pgspider 原文地址:https://www.cnblogs.com/rongfengliang/p/12260801.html

《基于Vue的数据可视化系统的设计与实现》文献阅读(十四)

一.基本信息 标题:基于Vue的数据可视化系统的设计与实现 时间:2018 来源:华中科技大学 关键词:数据可视化:数据可视化工具:探索式分析:Vue 二.研究内容 1.主要内容: 1.1 研究背景与意义随着互联网技术与信息化进程的高速发展,不管是传统行业还是互联网企业其信息化与数字化的进程不断加快,产生数据的速度及数据量也在飞速上升,这些数据中通常蕴含着大量对企业有价值的信息,如何从这些数据中发掘有价值的信息成为企业迫切需求.为了使企业更加方便有效的利用这些数据,可视化系统应运而生.数据可视化

超级好用的 Java 数据可视化库:Tablesaw

本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和使用 Tablesaw 项目.示例均在 Windows 操作系统下演示 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款基于 Java 语言的数据可视化库开源项目--Tablesaw Tablesaw是一款 Java 的数据可视化库.它主要包括两部分:一部分是数据解析库,另一部分是数据可视化库.数据解析库主要是加载数据,对数据进行操作(转化,过滤,汇总等).数据可视化库就是

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

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

基于HTML5的数据可视化实现方法解读

现在在大数据的带领下,数据可视化越来越突出,能够清楚的分析出自己想要的数据,这也是我们现在最求的数据可视化方法,那么实现HTML5的数据可视化方法有哪些?这都是我们值得研究的东西,数据可以给我们带来敏感的市场未来发展,同时也能够实时分别不同数据效果. HTML5为数据可视化提供了新的实现方法.本文对HTML5在健康数据可视化在PC及部分移动终端上的应用进行研究.使用HTML5中的Canvas和SVG实现的数据可视化方法基于浏览器的支持,具有很好的平台兼容性 可视化(Visualization)是

【Python爬虫学习实践】基于Beautiful Soup的网站解析及数据可视化

在上一次的学习实践中,我们以Tencent职位信息网站为例,介绍了在爬虫中如何分析待解析的网站结构,同时也说明了利用Xpath和lxml解析网站的一般化流程.在本节的实践中,我们将以中国天气网为例,并基于Beautiful Soup库对其进行数据解析,最后再简单说明pyecharts数据可视化. 中国天气网网址:http://www.weather.com.cn/textFC/hb.shtml 和之前的Tencent职位信息实践一样,我们先来分析一下我们所爬取的网站的结构.在中国天气网中,我们可