📜  DC.js-折线图(1)

📅  最后修改于: 2023-12-03 15:30:24.235000             🧑  作者: Mango

DC.js-折线图

DC.js是一个基于D3.js的可重用图表库。它提供了许多现成的图表组件,其中包括折线图。DC.js的折线图可用于显示随时间变化的数据趋势,例如股票价格、气温等。

安装
使用npm

npm install dc

使用CDN
<script src="https://cdnjs.cloudflare.com/ajax/libs/dc/3.1.8/dc.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dc/3.1.8/dc.min.css" />
基本用法

假设我们有一组数据,表示某公司每个季度的营业额和盈利额。我们可以使用DC.js的折线图来展示这些数据。

// 1. 创建交叉过滤器
var quarterDim = ndx.dimension(function(d) { return d.quarter; });

// 2. 创建度量
var revenueByQuarter = quarterDim.group().reduceSum(function(d) { return d.revenue; });
var profitByQuarter = quarterDim.group().reduceSum(function(d) { return d.profit; });

// 3. 创建折线图
var chart = dc.lineChart('#chart');

// 4. 配置图表
chart.dimension(quarterDim)
     .group(revenueByQuarter, '营业额')
     .stack(profitByQuarter, '盈利额')
     .x(d3.scale.ordinal())
     .xUnits(dc.units.ordinal)
     .yAxisLabel('金额')
     .renderHorizontalGridLines(true)
     .legend(dc.legend().x(70).y(10).itemHeight(13).gap(5));

// 5. 渲染图表
dc.renderAll();

我们首先创建了一个交叉过滤器,它将数据按照季度进行分组。然后我们创建了两个度量,分别计算营业额和盈利额。接着我们创建了一个折线图实例并进行了各种配置,并最终渲染了整个图表。

高级用法

DC.js的折线图支持许多高级配置,例如缩放、提示框、颜色映射等。下面是一个例子,演示了如何使用DC.js的折线图展示股票价格趋势。

// 1. 加载数据
d3.tsv('data.tsv', function(error, data) {
  var dateFormat = d3.time.format('%Y-%m-%d');

  // 2. 数据预处理
  data.forEach(function(d) {
    d.date = dateFormat.parse(d.date);
    d.price = +d.price;
  });

  // 3. 创建交叉过滤器
  var dateDim = ndx.dimension(function(d) { return d.date; });

  // 4. 创建度量
  var priceByDate = dateDim.group().reduceSum(function(d) { return d.price; });

  // 5. 创建折线图
  var chart = dc.lineChart('#chart');

  // 6. 配置图表
  chart.dimension(dateDim)
       .group(priceByDate)
       .x(d3.time.scale().domain(d3.extent(data, function(d) { return d.date; })))
       .brushOn(false)
       .yAxisLabel('价格')
       .renderHorizontalGridLines(true)
       .renderArea(true)
       .colors(d3.scale.category10())
       .title(function(d) {
          return '日期:' + dateFormat(d.key) + '\n' +
                 '价格:' + d.value + '\n';
       });

  // 7. 渲染图表
  dc.renderAll();
});

我们首先加载了股票价格数据,然后对数据进行格式转换和预处理。接着我们创建了一个交叉过滤器,它将数据按照日期进行分组。然后我们创建了一个度量,计算指定日期下的价格。接着我们创建了一个折线图实例并进行了各种配置,包括x轴和y轴的比例尺、颜色映射、提示框等。最终渲染整个图表。

总结

DC.js的折线图是一个强大的可重用组件,可用于展示随时间变化的数据趋势。它提供了许多高级配置,例如缩放、提示框、颜色映射等,使得开发者能够根据需求对图表进行灵活定制。