小编New*_*oJS的帖子

D3.js检查节点是否有类

我正在尝试编写一个click函数来选择下一个g.slice节点,添加一个类.sliceActive.sliceActive从原始节点中删除.slice.但是,只有当你在最后一个g.slice(有一个类.slice5)时,你才会将.sliceActiveg.slice一个类添加到第一个类.slice0.

到目前为止,这是我无法正常工作的.我认为问题是我不知道如何查看当前.sliceActive节点是否也有类.slice5.

        $(".next").click(function(){
            var nextSlice;
            if(d3.select("g.sliceActive").hasClass("slice5")){
                nextSlice= d3.select(".slice0");
            }else{
                nextSlice= d3.select("g.sliceActive + g");
            }               
            d3.select("g.sliceActive").classed("sliceActive",false);
            nextSlice.classed("sliceActive",true);
        });
Run Code Online (Sandbox Code Playgroud)

以下是它在Web检查器中的外观: 在此输入图像描述

class selection d3.js

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

ES6:通过其中一个属性在数组中查找对象

我想弄清楚如何在ES6中做到这一点......

我有这个对象数组..

const originalData=[
{"investor": "Sue", "value": 5, "investment": "stocks"},
{"investor": "Rob", "value": 15, "investment": "options"},
{"investor": "Sue", "value": 25, "investment": "savings"},
{"investor": "Rob", "value": 15, "investment": "savings"},
{"investor": "Sue", "value": 2, "investment": "stocks"},
{"investor": "Liz", "value": 85, "investment": "options"},
{"investor": "Liz", "value": 16, "investment": "options"}
];
Run Code Online (Sandbox Code Playgroud)

..和这个新的对象数组,我想添加每个人的投资类型(股票,期权,储蓄)的总价值..

const newData = [
{"investor":"Sue", "stocks": 0, "options": 0, "savings": 0},
{"investor":"Rob", "stocks": 0, "options": 0, "savings": 0},
{"investor":"Liz", "stocks": 0, "options": 0, "savings": 0}
];
Run Code Online (Sandbox Code Playgroud)

我循环遍历originalData并在let中保存"当前对象"的每个属性.

for (let obj of originalData) …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

格式化Y轴值,原始数字以百万计,只想显示前三位数

我的Y轴(每个国家)的数据有数百万的数字:{日期:"1960",德国:"72542990",西班牙:"30327000",法国:"46621166",意大利:"50025500"}

如何编写.tickFormat(d3.format("")); 在我的Y轴变量上格式化刻度值,使它们在Y轴刻度中显示如下:0,2,000万,4千万,6千万,8千万

目前它们显示为0,2000,000,4000000,6000000,80000000

谢谢.

number-formatting d3.js

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

尝试在 ES6 中使用导入/导出(使用 babel 编译)

这是我的应用程序的文件,它使用 babel 将 ES6 编译main.js为 ES5main.bundle.js

在此处输入图片说明

这是我的babel.rc文件(隐藏):

{
    "presets": ["@babel/preset-env"]
}
Run Code Online (Sandbox Code Playgroud)

这是我的package.json所有节点模块(devDependencies)的文件:

{
  "name": "es6-tutorial",
  "version": "1.0.0",
  "description": "ES6 tutorial",
  "main": "index.js",
  "scripts": {
    "babel": "babel js/main.js -o build/main.bundle.js",
    "start": "http-server",
    "watch": "babel js/main.js -o build/main.bundle.js --watch"
  },
  "author": "me",
  "license": "ISC",
  "devDependencies": {
    "@babel/preset-env": "^7.2.0",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.3",
    "babel-preset-es2015": "^6.24.1",
    "http-server": "^0.11.1"
  }
}
Run Code Online (Sandbox Code Playgroud)

现在要开始从 ES6 到 ES5 的编译,我导航 ( cd) 到此目录的根目录并设置监视以自动编译 ( npm run watch)

这工作正常,除了现在我还有一些功能myFunctions.js,我想导出和导入 …

javascript module ecmascript-6 babeljs

6
推荐指数
0
解决办法
4439
查看次数

D3.js- 如何将刻度值格式化为季度而不是月

我有一组季度数据。这是数组:

var dataGDP = [
{date:  "Q1-2008",  GDPreal:    "2.8"},
{date:  "Q2-2008",  GDPreal:    "0.6"},
{date:  "Q3-2008",  GDPreal:    "-2.1"},
{date:  "Q4-2008",  GDPreal:    "-4.3"},
{date:  "Q1-2009",  GDPreal:    "-6.8"},
{date:  "Q2-2009",  GDPreal:    "-6.3"},
{date:  "Q3-2009",  GDPreal:    "-5"}
];
Run Code Online (Sandbox Code Playgroud)

我如何让这些日期像 2008 年第一季度、2008 年第二季度、2008 年第三季度一样显示在我的 X 轴上?我的 X 轴使用基于时间的刻度我不确定是否有办法解析这些日期,因为它们现在使用 d3.time.format。但是,如果我使用月份,例如 01/2008、04/2008...,我可以解析它们: parseDate = d3.time.format("%m/%Y").parse;

我应该将数组中的日期写为月份,然后编写一个函数将月份转换为季度吗?或者有没有办法将 Q1..ect 保留在数组中,因为它现在并解析日期?

axis date d3.js

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

Vega-lite:如何自定义图例标签?

我有这个用Vega-lite制作的条形图(代码和图片如下)。

但我想自定义图例标签,以便不是 videoGame 而是Video Game 而不是tv而是TV 有办法做到这一点吗?

在此输入图像描述

lineChart = vegalite ({
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
   "width": 560,
   "height": 200,
   "data": {"values": chartData},
   "mark": {"type": "bar"},
   "encoding": {
     "x": {"field": "year_reference", "type": "temporal", "axis": {"title": "Year", "grid": true}},
     "y": {"field": "reference_count_total", "type": "quantitative", "axis": {"title": "References", "grid": true}},
   "color": {
     "field": "title_type", 
     "scale": {
       "domain": [
         "tv",
         "movie",
         "video",
         "videoGame"
       ],
       "range": [
         "#9e9ac8",
         "#74c476",
         "#a6761d",
         "#6baed6"
       ]
     },
     "legend": true,
     "title": "Reference Type"
    },
 }
Run Code Online (Sandbox Code Playgroud)

})

javascript data-visualization vega-lite

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

Python:如何过滤字典列表以获取一个键的所有值

我在python中有一个字典列表:

thedata = [{'date': '2002-02', 'data': 2.0}, 
           {'date': '2002-03', 'data': 2.0017}...]
Run Code Online (Sandbox Code Playgroud)

如何列出"数据"值?

[2.0, 2.0017...]
Run Code Online (Sandbox Code Playgroud)

我试过了:

justFigures = list(filter(lambda x: x["data"], thedata))
Run Code Online (Sandbox Code Playgroud)

python list filter

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

D3选择兄弟姐妹,给它上课

我有几个组元素,都是兄弟姐妹.

我正在尝试选择具有'sliceActive'类的那个并给它一个'slice'类,然后将下一个兄弟提供给'sliceActive'类

在此输入图像描述

所有这些都将在我的下一个按钮的点击事件中.我知道如何选择.activeSlice并给它.slice但是如何选择下一个g节点并给它.sliceActive?

       $(".button").click(function(){
            d3.select("g.sliceActive").attr('class','slice');
        });
Run Code Online (Sandbox Code Playgroud)

jquery select d3.js

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

ES6:将两个数组合并为一个对象数组

我有两个数组,我想合并到一个对象数组...

第一个数组是日期(字符串):

let metrodates = [
 "2008-01",
 "2008-02",
 "2008-03",..ect
];
Run Code Online (Sandbox Code Playgroud)

第二个数组是数字:

let figures = [
 0,
 0.555,
 0.293,..ect
]
Run Code Online (Sandbox Code Playgroud)

我想合并它们来制作一个像这样的对象(所以数组项与它们相似的索引相匹配):

let metrodata = [
   {data: 0, date: "2008-01"},
   {data: 0.555, date: "2008-02"},
   {data: 0.293, date: "2008-03"},..ect
];
Run Code Online (Sandbox Code Playgroud)

到目前为止我这样做是这样的:我创建一个空数组然后循环通过前两个数组中的一个来获取索引号(前两个数组的长度相同)...但是有更简单的方法(在ES6中) )?

  let metrodata = [];

  for(let index in metrodates){
     metrodata.push({data: figures[index], date: metrodates[index]});
  }
Run Code Online (Sandbox Code Playgroud)

arrays ecmascript-6

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

为什么我们使用构造函数的prototype属性添加方法?

有一点我不明白原型和构造函数..

假设我有这个构造函数,它将创建一个带有'name'属性和'logName'方法的对象

function MyExample(param1){
  this.name = param1;
};

MyExample.prototype.logName = function(){
  console.log(this.name);
}
Run Code Online (Sandbox Code Playgroud)

我理解我刚刚在构造函数的(myExample)原型中添加了一个方法(logName).当我使用这个构造函数创建一个新对象(我)时,该对象将继承'name'属性和'logName'方法.logName方法将成为新对象(me)proto属性的一部分

var me = new MyExample('bob');
me.logName(); //bob
Run Code Online (Sandbox Code Playgroud)

..但为什么不直接将logName方法添加到构造函数创建的对象中?(不是构造函数的原型)不会提供相同的结果吗?即使'logName'不是新对象的proto属性的一部分.

function MyExample(param1){
   this.name = param1;
   this.logName = function(){
      console.log(this.name)
   };
};

var me = new MyExample('bob');
me.logName(); //bob
Run Code Online (Sandbox Code Playgroud)

javascript constructor prototype

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

Django 模板:将 href 属性作为条件处理

现在,在我的 Django 模板中,a如果条件通过或失败,我正在编写一个全新的标记。有没有一种方法可以在a标签中写入这个条件,以便标签中只有一个?

{% for app in apps %}
    {% if app.app_id == "app-smart" %} 
      <a href='{{app.url}}' class='portfolio-link'>
    {% else %}
      <a href='{% url app.url %}' class='portfolio-link'>
    {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

django django-templates

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