Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[reference paper:http://leebyron.com/streamgraph/stackedgraphs_byron_wattenberg.pdf]
【version 1:2015_07_30 00:52】
[整体思路]:维护一个队列存放由下到上的各个layer的编号,每个计算点x(即该x时layer们有读入或随机产生的具体的y增量值)先计算最底层对应的y。
[变量说明]:每个layer有start和end,表示该layer进入和离开的时间。dat[]存放y增量值,ord[]存放计算好的y坐标。
m为计算点点数。interval每两计算点间距离。
>>index1.html & streamgraph1.js
  #数据随机产生,start不一定为0,end也不一定为m-1。
  #start<end,两端的dat值必为0。
  #只存放start之后的dat,之前的显然为0(其实貌似不差这一点点空间)。
  #不插值直接连线,把interval设小时效果还算可以。
>>index2.html & streamgraph2.js
  #在index1基础上加入贝塞尔插值,对任意(x1,y1)(x2,y2),产生(x3,y3)(x4,y4),其中x3=(x2-x1)/3+x1,x4=(x2-x1)/3*2+x1,y3和y4介于y1和y2之间。
  #计算过程中仅仅存储ord是不够的,于是干脆去掉ord[],pointarr[]用来存取所有的点(每段曲线由interval条细小折线构成,故数组长度约为canvas的width)。
  #一条曲线同时是上一层layer的下边界,和下一层layer的上边界;利用JS数组的unshift和push灵活实现。
  #没有道理的控制点选法,效果极差。
>>index3.html & streamgraph3.js
  #为了得到更好的随机数据产生法,直接照搬[http://bl.ocks.org/mbostock/4060954],同时还修改index1的数据随机方式为该方法,方便对比。
  #p1,p2,p3,p4……pn,以p2~p3这条为例,除了首尾两点p2p3,还需要两个控制点,分别为p2+(p3-p1)*v,p3-(p4-p2)*v
  #给color赋予含义:用单色表示,蓝绿红分别表示早期中期后期出现,相应亮度越高表示该layer总面积越大,透明度用于取分相邻两层


 	

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages