带jQuery和D3.js 堆叠条形图 StackBars

  • 源码大小:13.1KB
  • 所需积分:1积分
  • 源码编号:19JP-3798
  • 浏览次数:1189次
  • 最后更新:2023年07月24日
  • 所属栏目:图表
本站默认解压密码:19jp.com 或 19jp_com

简介

StackBars是一个编写良好、灵活的插件,可以方便地堆叠多个条形图来创建百分比指标图。

基于jQuery和d3.js库构建。您可以使用它来显示进度、税收百分比、成本、进度条等。

如何使用它:

1.在文档中加载必要的jQuery和d3.js库。

  1. <script src="/path/to/cdn/jquery.min.js"></script>
  2. <script src="/path/to/cdn/d3.min.js"></script>

2.在jQuery之后加载Stackbars插件。

  1. <script src="plugin.js"></script>

3.为堆叠条形图创建一个空的DIV。

  1. <div id="indicator"></div>

4.在JS数组中定义您的pencentage值,如下所示:

  1. const myData = [
  2. {
  3. "key": 0, // unique ID
  4. "label": "Element 1", // Label text
  5. "value": 1
  6. },
  7. {
  8. "key": 1,
  9. "label": "Element 2",
  10. "value": 1
  11. },
  12. {
  13. "key": 2,
  14. "label": "Element 3",
  15. "value": 1
  16. },
  17. // ...
  18. ]

5.根据您提供的数据生成堆叠条形图。

  1. var bars = $("#indicator").stackbars({
  2. data: myData,
  3. });

6.自定义堆叠条形图的外观。

  1. var bars = $("#indicator").stackbars({
  2. data: myData,
  3. height: 48, // container height
  4. bottomMargin: 0,
  5. container: '#indicator',
  6. colorSetting: ["#33876b","#559559","#77a347","#98b236","#bac024","#dcce12","#cccccc","#b2b2b2","#9a9a9a","#808080","#4a4a4a","#121212"],
  7. stackMargin: 0,
  8. stackHeight: 6, // bar height
  9. textPositionEven: -4,
  10. textPositionOdd: -4,
  11. hoverButtonWidth: 200,
  12. stackMinWidth: 15,
  13. disableEvents: false, // disable mouse interaction
  14. });

7.单击某个部分时触发一个函数。

  1. var bars = $("#indicator").stackbars({
  2. data: myData,
  3. onSectionClick: function (obj) {
  4. // do something
  5. },
  6. });

8.当鼠标悬停在堆叠的条形图上时触发一个功能。

  1. var bars = $("#indicator").stackbars({
  2. data: myData,
  3. hoverText: function (obj) {
  4. // do something
  5. }
  6. });

9.更新堆叠条形图。

  1. $("#indicator").stackbars("update", newData);

预览截图