当前位置:首页 > JavaScript

js实现图表

2026-02-28 18:45:43JavaScript

使用 Chart.js 实现图表

Chart.js 是一个流行的开源 JavaScript 库,用于创建响应式、美观的图表。支持多种图表类型,包括折线图、柱状图、饼图等。

安装 Chart.js:

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

创建基础柱状图:

<canvas id="myChart" width="400" height="400"></canvas>
<script>
  const ctx = document.getElementById('myChart');
  new Chart(ctx, {
    type: 'bar',
    data: {
      labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
      datasets: [{
        label: '# of Votes',
        data: [12, 19, 3, 5, 2, 3],
        borderWidth: 1
      }]
    },
    options: {
      scales: {
        y: {
          beginAtZero: true
        }
      }
    }
  });
</script>

使用 D3.js 实现高级图表

D3.js 是一个功能强大的数据可视化库,提供更底层的控制能力。

安装 D3.js:

<script src="https://d3js.org/d3.v7.min.js"></script>

创建简单饼图:

js实现图表

const data = [10, 20, 30, 40];
const width = 450;
const height = 450;
const radius = Math.min(width, height) / 2;

const color = d3.scaleOrdinal()
  .domain(data)
  .range(['#98abc5', '#8a89a6', '#7b6888', '#6b486b']);

const arc = d3.arc()
  .outerRadius(radius - 10)
  .innerRadius(0);

const pie = d3.pie()
  .value(d => d);

const svg = d3.select("body").append("svg")
  .attr("width", width)
  .attr("height", height)
  .append("g")
  .attr("transform", `translate(${width/2},${height/2})`);

const g = svg.selectAll(".arc")
  .data(pie(data))
  .enter().append("g")
  .attr("class", "arc");

g.append("path")
  .attr("d", arc)
  .style("fill", d => color(d.data));

g.append("text")
  .attr("transform", d => `translate(${arc.centroid(d)})`)
  .attr("dy", ".35em")
  .text(d => d.data);

使用 ECharts 实现交互式图表

ECharts 是百度开发的强大图表库,特别适合复杂的数据可视化需求。

安装 ECharts:

<script src="https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>

创建折线图:

js实现图表

const chartDom = document.getElementById('main');
const myChart = echarts.init(chartDom);
const option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [{
    data: [820, 932, 901, 934, 1290, 1330, 1320],
    type: 'line',
    smooth: true
  }]
};
myChart.setOption(option);

使用 Highcharts 实现商业图表

Highcharts 是一个专业的商业图表库,提供丰富的图表类型和配置选项。

安装 Highcharts:

<script src="https://code.highcharts.com/highcharts.js"></script>

创建面积图:

Highcharts.chart('container', {
  chart: {
    type: 'area'
  },
  title: {
    text: 'Fruit consumption'
  },
  series: [{
    name: 'Apples',
    data: [1, 2, 3, 5, 8, 13]
  }, {
    name: 'Oranges',
    data: [2, 3, 5, 7, 11, 13]
  }]
});

响应式设计技巧

确保图表在不同设备上正常显示:

// Chart.js 响应式配置
options: {
  responsive: true,
  maintainAspectRatio: false
}

// ECharts 响应式处理
window.addEventListener('resize', function() {
  myChart.resize();
});

这些方法提供了从简单到复杂的图表实现方案,可根据项目需求选择合适的库。Chart.js 适合快速实现基本图表,D3.js 适合需要高度自定义的场景,ECharts 和 Highcharts 则适合复杂的商业数据可视化需求。

标签: 图表js
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swip…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…