Skip to content

NickersWeb/D3-Radial-Gauge

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Javascript D3-Radial-Gauge

D3.JS Radial Gauge / Multi Needle.

Tweaks that I wanted from the original.

Multiple Ranges. Range comes with text. Accessibility with screen readers. Clickable Needles via needle params. Workable with and without Angular Js

"clickFunc":"","clickParams":""

alt tag alt tag

Here is the list of properties with their default value that can be changed according to your needs:

     {
           "ranges":[
               {"id":"00b4c767-bc7b-4bea-9e56-229385ff75f8","min":0,"max":30,"thickness":0.5,"color":"#ff4f4f","value":"Severe"},
               {"id":"62996c84-b822-4d02-aac7-3e7605bb173a","min":30,"max":50,"thickness":0.5,"color":"#ff8080","value":"Very Poor"},
               {"id":"fc1664a4-8861-44d6-ac33-cb88fa54d683","min":50,"max":65,"thickness":0.5,"color":"#eaf424","value":"Poor"},
               {"id":"42f4872d-0da8-489d-9236-a63d288026e2","min":65,"max":75,"thickness":0.5,"color":"#f5fa3d","value":"Fair"},
               {"id":"970bb7e1-1f32-4aed-9e3e-1e4ea662458d","min":75,"max":90,"thickness":0.5,"color":"#269d2f","value":"Good"},
               {"id":"6d399f34-5395-41fe-88ac-d557ea675069","min":90,"max":100,"thickness":0.5,"color":"#0ab80e","value":"Very Good"}
           ],
           "needles":[
               {"id":"100aaf20-274d-4b64-99f4-e93de73f4fc1","value":100.0,"precision":1,"valueUnit":"Condition","thickness":0.0,"color":"#416094","clickFunc":"","clickParams":""}
           ],
           "face":{"thickness":0.0},
           "format":null,
           "value":0.0,
           "valueUnit":"",
           "lowerLimit":0,
           "upperLimit":100,
           "step":10,
           "startAngle":0,
           "sweepAngle":180,
           "hasShadow":true,
           "autoScale":true,
           "showRanges":true,
           "isAnimated":true,
           "majorGradPrecision":1,
           "gaugeTitle":"Single Gauge "
       };

Here is a usage sample:

   <div>
  <div id="multiGauge"></div>
</div>
    <script type="text/javascript">
         $(function () {
           var gaugeDataMulti =  {}
           var multiGauge = new CustomGauge($("#multiGauge"),gaugeDataMulti);
           multiGauge.initialise();
           //Can be updated onNeedlesChanged ... param of the new needles.
           //Updated Needles.
           //if isAnimated prop is set true, will animate on the needles change. E.g. will slowly move to new values.
           var needles = [...]
           multiGauge.onNeedlesChanged(needles);
         });
    </script>
    <script src="https://d3js.org/d3.v5.min.js"></script>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    <script src="CustomGauge.js"></script>

Demo - https://codepen.io/NickersWebDev/pen/ZEzeGEE

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 85.8%
  • HTML 14.2%