📅  最后修改于: 2023-12-03 15:30:24.235000             🧑  作者: Mango
DC.js是一个基于D3.js的可重用图表库。它提供了许多现成的图表组件,其中包括折线图。DC.js的折线图可用于显示随时间变化的数据趋势,例如股票价格、气温等。
npm install dc
<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的折线图是一个强大的可重用组件,可用于展示随时间变化的数据趋势。它提供了许多高级配置,例如缩放、提示框、颜色映射等,使得开发者能够根据需求对图表进行灵活定制。