使用vue cli创建项目
1 2 3 4 5 6 7 8
| # 全局安装脚手架 npm install -g @vue/cli-init # 初始化项目 vue init webpack-simple my-g2-study # 进入目录 cd my-g2-study # 安装g2依赖 yarn add @antv/g2
|
项目启动
首先使用下面启动项目
然后使用webstorm打开项目目录,我们需要在components下,创建一个文件HelloG2.vue
引用G2包
1
| import G2 from '@antv/g2';
|
创建div图表容器
我们需要在页面的body部分创建一个div,然后设置id
编写图表绘制代码
创建 div
容器后,我们就可以进行简单的图表绘制,主要分为下面几步:
- 创建 Chart 图表对象,指定图表所在的容器 ID、指定图表的宽高、边距等信息;
- 载入图表数据源;
- 使用图形语法进行图表的绘制;
- 渲染图表
完整代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| <template> <div id="c1"></div> </template>
<script> import G2 from '@antv/g2';
export default { name: 'HelloG2', props: { msg: String }, mounted() { const data = [ {genre: 'Sports', sold: 275}, {genre: 'Strategy', sold: 115}, {genre: 'Action', sold: 120}, {genre: 'Shooter', sold: 350}, {genre: 'Other', sold: 150}, ]; // G2 对数据源格式的要求,仅仅是 JSON 数组,数组的每个元素是一个标准 JSON 对象。
// Step 1: 创建 Chart 对象 const chart = new G2.Chart({ container: 'c1', width: 600, height: 300, });
// Step 2: 载入数据源 chart.source(data);
// Step 3:创建图形语法,绘制柱状图,由 genre 和 sold 两个属性决定图形位置,genre 映射至 x 轴,sold 映射至 y 轴 chart .interval() .position('genre*sold') .color('genre');
// Step 4: 渲染图表 chart.render(); } } </script>
<!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped>
</style>
|
然后在App.vue引用该组件即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <template> <div id="app"> <HelloG2 msg="Welcome to Your Vue.js App"/> </div> </template>
<script> import HelloG2 from './components/HelloG2.vue'
export default { name: 'app', components: { HelloG2 } } </script>
<style> #app { font-family: 'Avenir', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>
|
最后效果图: