小编dan*_*ani的帖子

使用Protovis的交互式区域图表

这对Protovis新人来说是一个相当艰巨的项目,但也许你可以帮助我把它分成易消化的块?

我想要构建的是一个"交互式区域图表",如下所示: http://i.stack.imgur.com/7bs9W.png

首先,它是数据......我在Excel中有各省的数据:

Province   Year  10  100  1000  10000 
A          1970  2   4    6     3 
A          1971  3   6    8     5 
B          1970  6   9    12    6 
B          1971  4   8    11    8 
....       ...   .   .    .     .

对于每个省和年,我希望能够绘制面积图:

vis.add(pv.Area) 
    .data(data.ProvinceA[1970]) 
    .bottom(1) 
    .interpolate("basis") 
    .left(function(d) x(d.x)) 
    .height(function(d) y(d.y)) 
    .fillStyle("rgb(21,173,210)") 
    .anchor("top").add(pv.Line) 
    .lineWidth(3); 
Run Code Online (Sandbox Code Playgroud)

然后我想添加两种类型的交互:

  1. 省的选择
  2. 时间滑块

选择复选框和时间滑块一起确定在任何给定时间可见的区域.例如,如果选择了省A并且年份是1984年,则仅显示该区域.如果现在拖动时间滑块,则现在会显示省A的相应年份.如果选中了另一个省,则会覆盖这些区域,并在时间滑块移动时重新绘制这两个区域.

Protovis问题:

  1. 如何格式化此应用程序的数据(省,年,年,年)?
  2. 如何实现复选框与区域的绑定?
  3. 如何实现时间滑块?在Protovis中,或者像是一个带有侦听器的外部组件,触发器重新渲染图形?

javascript json visualization protovis

4
推荐指数
1
解决办法
1267
查看次数

从JavaScript中检索或设置LESS变量?

在测试我的网络应用程序时,我希望能够使用简单的下拉列表设置我的一个LESS @variables的值.(完全改变配色方案).

我想在设置值后,LESS必须用新值重新加载/重新编译.less文件?

有没有简单的方法来实现这一目标?(我没有运行node.js)

基本的例子是这样的:

styles.less
@base-color = `window.baseColor()`
Run Code Online (Sandbox Code Playgroud)

css less

4
推荐指数
1
解决办法
2077
查看次数

响应式网页设计断点?为什么设计为1280,1024,640?

我在Photoshop中收到了三种不同分辨率的网站布局:1280,1024和640像素宽.由于我对RWD的经验有限,我想更好地了解网页设计师应该如何考虑尺寸断点,流动性等(在撰写本文时).

我的具体问题源自这个项目:

  1. 鉴于该项目是一个典型的公司网站,为什么设计师会采用这3种分辨率?
  2. 一般来说,这些决议是最佳的还是我应该要求其他人?
    (1024,768,320不会更有意义吗?或者我应该寻找"自然断点而不是规范?"
  3. 关于iPhone 3(@ 320px)和4(@ 640px),如何实现640布局?

谢谢你的帮助.

html5 media-queries responsive-design

4
推荐指数
1
解决办法
1万
查看次数

四个Backbone.js模型问题

我正在使用Backbone.js来跟踪可视化应用程序中的状态.

该模型具有以下属性:

indicatorX : "income"
indicatorY : "emissions"
indicatorXScale : "lin"
indicatorYScale : "log"
year : 1980
layout : {leftPanel : {[...]}, rightPanel : {[...]}}  
Run Code Online (Sandbox Code Playgroud)

1. 在Backbone.js模型中处理"依赖属性"的好方法是什么?
例如,在更改indicatorX属性时,我也希望模型更新indicatorXScale属性.

2.如何处理"延迟"模型属性?例:

该模型包含:

indicatorX : "income"  
indicatorXScale : "log"
Run Code Online (Sandbox Code Playgroud)

如果仅在模型上设置了indicatorX,则应将比例设置为默认值:

model.set( {indicatorX : "emissions"} )
if("indicatorX" in changedAttrs){
    indicatorXScale = dataSource[indicatorX].defaultScale
}
Run Code Online (Sandbox Code Playgroud)

但是,如果用户想要覆盖"排放"指标的默认比例"lin",该怎么办?

model.set( {indicatorX : "emissions", indicatorXScale : log} )
Run Code Online (Sandbox Code Playgroud)

由于模型属性indicatorXScale已设置为"log",因此不会记录更改的属性.我怎样才能确保在这种情况下不加载defaultScale - 而是传递给模型的那个?

3.让模型使用额外的属性"动作"来描述模型中的变化是一个好主意吗?
通过这种方式,控制器可以侦听一个属性,而不是为属性组合指定处理程序.这些是替代方案:

Alt 1. Controller具有特定属性的处理程序:

this.model.bind("change:year", this.render);
this.model.bind("change:layout", this.updateLayout);  
Run Code Online (Sandbox Code Playgroud)

Alt 2. Controller具有模型更改的处理程序,render()指出要执行的操作:

this.model.bind("change", this.render);
render() …
Run Code Online (Sandbox Code Playgroud)

javascript model-view-controller backbone.js

3
推荐指数
1
解决办法
2454
查看次数

用if/else自动替换条件运算符?

特定的JS解析器(不在我的控件中)不理解嵌套的条件运算符语法,如下所示:

return num === 1 ? condition ? condition : something : something;
Run Code Online (Sandbox Code Playgroud)

因此,我想用if/else块替换文件中的所有条件运算符(简单和嵌套).我该怎么办呢?(Textmate或类似的regexp会有所帮助.)

javascript regex replace conditional-operator

3
推荐指数
1
解决办法
1360
查看次数

使用 JavaScript 按字母顺序对丹麦语进行排序?

是否有库或跨浏览器本机实现来在 JavaScript 中按字母顺序对丹麦字符串数组进行排序?

[奥尔堡,索罗...]

javascript sorting locale

3
推荐指数
2
解决办法
2128
查看次数

用于平滑分选ng-repeat的ngAnimate示例?

我想看一个使用angular-animate(1.2x)对列表进行排序的功能示例.(我只是在互联网上遇到破碎的小提琴等):

给定数组[A,B,C]和后来的[C,B,A]的ng-repeat应该:

  • 将A移至底部
  • 将C移至顶部
  • 保持B的位置

(使用CSS绝对顶部定位或类似.)

使用交错(转换延迟)的示例是奖励.

angularjs ng-animate

3
推荐指数
1
解决办法
3547
查看次数

离线工作的JavaScript SVG World Map库?

我正在寻找一个JavaScript库,它允许我从本地托管的形状数据构建S​​VG地图(允许用户在没有互联网连接的情况下使用该应用程序).

1)我应该在哪里看?
2)GeoJson是形状数据的良好候选者吗?
3)我在哪里可以找到国家边界和(1级深)地方实体的形状数据?

如果图书馆也支持绘制圆圈,其中心点位于特定的纬度/经度坐标处,那将是一个奖励:)

javascript gis svg geojson

2
推荐指数
1
解决办法
2797
查看次数

用于可视化的伪造分布数据

我想为我的可视化项目(在JavaScript中)创建一些"模拟数据".

优选地,我想总共分配X单元ý不同组Z步长间隔根据一些概率分布函数,即,正常或对数正态分布.

例:

使用常规密度函数将正好100个单位分配给0-5000,5000-10000,[...],75000-80000组.

应该呈现这样的东西:

binNames = [ "0-5000", "5000-10000", [...] ]
binData = [ 0,0,0,1,2,10,12,14,12,10 [...] ] //SUM = 100
Run Code Online (Sandbox Code Playgroud)

(如果我可以用简单的种子参数引入一些偏斜,那将是一个奖励.)

javascript data-visualization normal-distribution

1
推荐指数
1
解决办法
2375
查看次数

重塑数据从宽到长?

如何重塑这些广泛的数据:(来自csv文件)

Name    Code    Indicator     1960    1961    1962  
Run Code Online (Sandbox Code Playgroud)

进入这种长格式?

Name    Code    Indicator     Year
Run Code Online (Sandbox Code Playgroud)

r

1
推荐指数
2
解决办法
1961
查看次数

Backbone.js模型中的依赖属性

如果我的模型中的两个值(a或b)中的任何一个发生变化,则两个监听视图需要计算第三个值c.

//Pseudo 
mainModel 
  a : 2000 
  b : 3000

view1 
helper.calculateC(this.model.get(a), this.model.get(b)) 

view2 
helper.calculateC(this.model.get(a), this.model.get(b)) 
Run Code Online (Sandbox Code Playgroud)

我宁愿将依赖属性c放在模型中(因为计算相当复杂,以后可能会允许"c"被用户覆盖.)什么是好的做法?我应该扩展模型,制作一个子模型还是什么?

谢谢!

javascript model-view-controller backbone.js

0
推荐指数
1
解决办法
1070
查看次数