StackBars是一个编写良好、灵活的插件,可以方便地堆叠多个条形图来创建百分比指标图。
基于jQuery和d3.js库构建。您可以使用它来显示进度、税收百分比、成本、进度条等。
1.在文档中加载必要的jQuery和d3.js库。
- <script src="/path/to/cdn/jquery.min.js"></script>
- <script src="/path/to/cdn/d3.min.js"></script>
2.在jQuery之后加载Stackbars插件。
- <script src="plugin.js"></script>
3.为堆叠条形图创建一个空的DIV。
- <div id="indicator"></div>
4.在JS数组中定义您的pencentage值,如下所示:
- const myData = [
- {
- "key": 0, // unique ID
- "label": "Element 1", // Label text
- "value": 1
- },
- {
- "key": 1,
- "label": "Element 2",
- "value": 1
- },
- {
- "key": 2,
- "label": "Element 3",
- "value": 1
- },
- // ...
- ]
5.根据您提供的数据生成堆叠条形图。
- var bars = $("#indicator").stackbars({
- data: myData,
- });
6.自定义堆叠条形图的外观。
- var bars = $("#indicator").stackbars({
- data: myData,
- height: 48, // container height
- bottomMargin: 0,
- container: '#indicator',
- colorSetting: ["#33876b","#559559","#77a347","#98b236","#bac024","#dcce12","#cccccc","#b2b2b2","#9a9a9a","#808080","#4a4a4a","#121212"],
- stackMargin: 0,
- stackHeight: 6, // bar height
- textPositionEven: -4,
- textPositionOdd: -4,
- hoverButtonWidth: 200,
- stackMinWidth: 15,
- disableEvents: false, // disable mouse interaction
- });
7.单击某个部分时触发一个函数。
- var bars = $("#indicator").stackbars({
- data: myData,
- onSectionClick: function (obj) {
- // do something
- },
- });
8.当鼠标悬停在堆叠的条形图上时触发一个功能。
- var bars = $("#indicator").stackbars({
- data: myData,
- hoverText: function (obj) {
- // do something
- }
- });
9.更新堆叠条形图。
- $("#indicator").stackbars("update", newData);