0.9.0 • Published 5 years ago

hexachart v0.9.0

Weekly downloads
75
License
-
Repository
-
Last release
5 years ago

hexachart

Hexagon based data-viz

Quick Run

<html>
</head>
  <script src="https://unpkg.com/vue"></script>
  <script src="https://cdn.jsdelivr.net/npm/hexachart/dist/HexaChart.umd.min.js"></script>
</head>
<body>
<div id="app" class="container">
  <hexa-stack-chart :data="hsData" :texts="hsTexts" :colors="hsColors"/>
</div>
<script>
  // Comment the following line and uncomment the bellow line to use as plugin
  Object.keys(HexaChart).forEach(name => {
    Vue.component(name, HexaChart[name])
  })
  // Uncomment to use as a plugin
  // const plugin = {
  //   install: Vue => {
  //     Object.keys(HexaChart).forEach(name => {
  //       Vue.component(name, HexaChart[name])
  //     })
  //   }
  // }
  // Vue.use(plugin)
  const hsData = [52.5, 26.3, 21.2]
  const hsColors = ['#666666', '#999999', '#cccccc']
  const hsTexts = ['Alpha', 'Beta', 'Gamma']
  const vm = new Vue({
    data() {
      return {
        hsData,
        hscolors,
        hsTexts
      }
    },
  }).$mount('#app')
</script>
</body>
</html>

In a Vue Project

npm i hexachart
...
</template>
<script>
import * as HexaChat from 'HexaChart'
export default {
  name: 'Demo',
  components: {
    HexaChat.HexaStackChart,
    ...    
  },
  ...

Components

HexaStack

Minimal Example

<template>
<div>
  <hexa-stack-chart
    data="data"
    :colors="colors"
    :texts="texts"
  />
</div>
</template>

<script>
import { HexaStackChart } from 'HexaChart'
export default {
  name: 'Demo',
  components: {
    HexaStackChart
  },
  data () {
    return {
      data: [52.5, 26.3, 21.2],
      colors: ['#666666', '#999999', '#cccccc'],
      texts: ['Alpha', 'Beta', 'Gamma']
    }
  }
}
</script>

<style>
/** Fluid & Fixed responsive **/
.hc-hexastack {
  width: 170px;
  height: 530px;
}
</style>

Props

proptypedefaultdescription
dataArray[]The main data, array of floats, e.g. 3.5, 4, 16. The size precede the data sum in priority, that means if size is greater than the data sum, the remaining cells will be filled by offColor, while if it is lesser it will be truncated
colorsArray'#f67055'Colors to be used (reserve order with data)
textsArray[]Array of strings that will be used as legend (reserve order with data)
offColorString'#757575'default color for any inactive cell (hexagon)
sizeNumber100The Total number of cells
columnsNumber5The number of columns
rowsNumber20The number of rows
horizontalBooleanfalseEither or not the hexastack is horizontal, default is vertical
animationBooleantrueEither or not use animation, if false no animation will play
animationDurationNumber3000Animation duration time in milliseconds, do not set to 0, use animation false instead
animationOptionsObject{delay: 0, easing: 'Bounce', easingEdge: 'Out'}Object of tweenjs like animation
gradientSpreadNumber.5How much the gradient will spread, 0 for sharp separation

HexaPie

Minimal Example

<template>
<div>
  <hexa-pie-chart
    :data="data"
    :texts="texts"
  />
</div>
</template>

<script>
import HexaPieChart from 'HexaChart'
export default {
  name: 'Demo',
  components: {
    HexaPieChart
  },
  data () {
    return {
      data: [32, 18],
      texts: ['Alpha', 'Beta']
    }
  }
}
</script>

<style>
.hc-hexapie {
  width: 316px;
  height: 234px;
}
.hc-hexapie-text {
  fill: #ffffff;
  font-size: 20px;
}
.hc-hexapie-legend {
  font-size: 20px;
  fill: #999999;
}
</style>

Props

proptypedefaultdescription
dataArray[]The main data, array of floats, e.g. 3.5, 4, 16. This data are represented as percentage on the pie chart
colorsArray'#666666', '#f56042'Colors to be used (reserve order with data)
textsArrayArray of strings that will be used as legend (reserve order with data)
radiusNumber116Radius of the pie
curveNumber0.8A float between 0..1 that indicate how rounded are the hexagon conrners, 0 would make it a circle and 1 a hexagon
animationBooleantrueEither or not use animation, if false no animation will play
animationDurationNumber3000Animation duration time in milliseconds, do not set to 0, use animation false instead
animationOptionsObject{delay: 0, easing: 'Bounce', easingEdge: 'Out'}Object of tweenjs like animation

HexaInception

Minimal Example

<template>
<div>
  <hexa-inception-chart
    :data="data"
    :texts="texts"
    :unit="unit"
  />
</div>
</template>

<script>
import HexaInceptionChart from 'HexaStack'
export default {
  name: 'Demo',
  components: {
    HexaInceptionChart
  },
  data () {
    return {
      data: [107228, 76561],
      texts: ['Alpha', 'Beta'],
      unit: 'M'
    }
  }
}
</script>

<style>
.hc-hexainception {
  width: 500px;
  height: 500px;
}
</style>

Props

proptypedefaultdescription
dataArray[]The main data, Ordered array of floats, e.g. 16, 5, 2
colorsArray'#666666', '#f56042'Colors to be used (reserve order with data)
textsArrayArray of strings that will be used as legend (reserve order with data)
unitString''Unit used in the legend, if left empty it will be ommited
curveNumber0.8A float between 0..1 that indicate how rounded are the hexagon conrners, 0 would make it a circle and 1 a hexagon
animationBooleantrueEither or not use animation, if false no animation will play
animationDurationNumber3000Animation duration time in milliseconds, do not set to 0, use animation false instead
animationOptionsObject{delay: 0, easing: 'Bounce', easingEdge: 'Out'}Object of tweenjs like animation

HexaBubule

Minimal Example

<template>
<div>
  <hexa-buble-chart
    :data="data"
  />
</div>
</template>

<script>
import HexaBubleChart from 'HexaStack'
export default {
  name: 'Demo',
  components: {
    HexaBubleChart
  },
  data () {
    return {
      data: [
        {d: 30222 name: 'GrandPa1', id: 1, children: [
          {d: 5600, name: 'Pa1_1', id: 11, children: [
            {d: 130932 name: 'Kid1_1_1', id: 111},
            {d: 89921 name: 'Kid1_1_2', id: 112},
            ...
          ]},
          {d: 66554, name: 'Pa1_2', id: 12, children: [
            ...
          ]},
          ...
        ]},
        ...
      ]
    }
  }
}
</script>

<style>
.hc-hexabuble {
  width: 100%;
  height: 500px;
}
.hc-hexabuble-chart {
  border: #000 solid 1px;
}
.hc-hexabuble-legend {
  font-size: 16px;
  fill: #999999;
}
</style>

Props

proptypedefaultdescription
dataArray[]The main data, One way bound Tree with leafs being on the format {d: 89921 name: 'name to be displayed', id: 1} and parent having an additional children attribute, which is an array of other nodes
colors*undefinedundefinednot yet implemented
unitString''Unit used in the legend, if left empty it will be ommited
curve*undefinedundefinednot yet implemented
animationBooleantrueEither or not use animation, if false no animation will play
animationDurationNumber3000Animation duration time in milliseconds, do not set to 0, use animation false instead
animationOptionsObject{delay: 0, easing: 'Bounce', easingEdge: 'Out'}Object of tweenjs like animation
0.9.0

5 years ago

0.8.0

5 years ago

0.7.0-r1

5 years ago

0.7.0

5 years ago

0.6.0

5 years ago

0.5.2-r3

5 years ago

0.5.2-r1

5 years ago

0.5.2

5 years ago

0.5.1

5 years ago

0.5.0

5 years ago

0.4.9

5 years ago

0.4.8-r6

5 years ago

0.4.8-r5

5 years ago

0.4.8-r4

5 years ago

0.4.8-r3

5 years ago

0.4.8-r2

5 years ago

0.4.8

5 years ago

0.4.7

5 years ago

0.4.6-r1

5 years ago

0.4.6

5 years ago

0.4.5-r2

5 years ago

0.4.5-r1

5 years ago

0.4.5

5 years ago

0.4.2

5 years ago

0.4.1

5 years ago