diff --git a/src/BaseCharts/Scatter.js b/src/BaseCharts/Scatter.js
new file mode 100644
index 0000000..ef6d0d3
--- /dev/null
+++ b/src/BaseCharts/Scatter.js
@@ -0,0 +1,69 @@
+import Vue from 'vue'
+import Chart from 'chart.js'
+import { mergeOptions } from '../helpers/options'
+
+export default Vue.extend({
+ render: function (createElement) {
+ return createElement(
+ 'div',
+ [
+ createElement(
+ 'canvas', {
+ attrs: {
+ id: this.chartId,
+ width: this.width,
+ height: this.height
+ },
+ ref: 'canvas'
+ }
+ )
+ ]
+ )
+ },
+
+ props: {
+ chartId: {
+ default: 'scatter-chart',
+ type: String
+ },
+ width: {
+ default: 400,
+ type: Number
+ },
+ height: {
+ default: 400,
+ type: Number
+ }
+ },
+
+ data () {
+ return {
+ defaultOptions: {
+ scales: {
+ xAxes: [{
+ type: 'linear',
+ position: 'bottom'
+ }]
+ }
+ }
+ }
+ },
+
+ methods: {
+ renderChart (data, options) {
+ let chartOptions = mergeOptions(this.defaultOptions, options)
+
+ this._chart = new Chart(
+ this.$refs.canvas.getContext('2d'), {
+ type: 'scatter',
+ data: data,
+ options: chartOptions
+ }
+ )
+ this._chart.generateLegend()
+ }
+ },
+ beforeDestroy () {
+ this._chart.destroy()
+ }
+})
diff --git a/src/examples/App.vue b/src/examples/App.vue
index 61f5cee..cfb9016 100644
--- a/src/examples/App.vue
+++ b/src/examples/App.vue
@@ -18,6 +18,8 @@