F2 可视化方案 柱状图

F2 文档

  1. ui 组件中集成了 F2 移动端可视化方案
  2. 文档中写了俩个简单的 柱状图的 demo
  3. 具体需要使用查看F2 的官方文档

效果展示

F2 可视化方案 柱状图 - 图1

代码示例

  1. <template>
  2. <div>
  3. <canvas id="myChart" height="260"></canvas>
  4. <br/><br/><br/><br/>
  5. <canvas id="mountNode" height="260"></canvas>
  6. </div>
  7. </template>
  8. <script>
  9. import F2 from '@antv/f2'
  10. console.log(F2, '**')
  11. export default {
  12. components: {
  13. },
  14. computed: {
  15. styles () {
  16. return {
  17. marginTop: '10px',
  18. borderRadius: '4px',
  19. minHeight: '36px',
  20. background: '#d3dce6'
  21. }
  22. }
  23. },
  24. created() {
  25. console.log('this.$route.query:', this.$route.query);
  26. this.$nextTick(() => {
  27. this.setNavbar(); // 设置topbar
  28. // 绘制柱形图
  29. this.playMyChart();
  30. this.playOtherChart();
  31. });
  32. },
  33. data () {
  34. return {
  35. list: [
  36. { genre: 'Sports', sold: 275 },
  37. { genre: 'Strategy', sold: 115 },
  38. { genre: 'Action', sold: 120 },
  39. { genre: 'Shooter', sold: 350 },
  40. { genre: 'Other', sold: 150 },
  41. ],
  42. list2: [{
  43. year: '1951 年',
  44. sales: 38
  45. }, {
  46. year: '1952 年',
  47. sales: 52
  48. }, {
  49. year: '1956 年',
  50. sales: 61
  51. }, {
  52. year: '1957 年',
  53. sales: 145
  54. }, {
  55. year: '1958 年',
  56. sales: 48
  57. }, {
  58. year: '1959 年',
  59. sales: 38
  60. }, {
  61. year: '1960 年',
  62. sales: 38
  63. }, {
  64. year: '1962 年',
  65. sales: 38
  66. }]
  67. }
  68. },
  69. methods: {
  70. setNavbar(){
  71. AI.setNavbar({
  72. title: 'F2柱状图',
  73. })
  74. },
  75. // 绘制
  76. playMyChart() {
  77. // Step 1: 创建 Chart 对象
  78. const chart = new F2.Chart({
  79. id: 'myChart',
  80. pixelRatio: window.devicePixelRatio // 指定分辨率
  81. });
  82. // Step 2: 载入数据源
  83. chart.source(this.list);
  84. // Step 3:创建图形语法,绘制柱状图,由 genre 和 sold 两个属性决定图形位置,genre 映射至 x 轴,sold 映射至 y 轴
  85. chart.interval().position('genre*sold').color('genre');
  86. // Step 4: 渲染图表
  87. chart.render();
  88. },
  89. playOtherChart() {
  90. var chart = new F2.Chart({
  91. id: 'mountNode',
  92. pixelRatio: window.devicePixelRatio
  93. });
  94. chart.source(this.list2, {
  95. sales: {
  96. tickCount: 5
  97. }
  98. });
  99. chart.tooltip({
  100. showItemMarker: false,
  101. onShow: function onShow(ev) {
  102. var items = ev.items;
  103. items[0].name = null;
  104. items[0].name = items[0].title;
  105. items[0].value = '? ' + items[0].value;
  106. }
  107. });
  108. chart.interval().position('year*sales');
  109. chart.render();
  110. }
  111. }
  112. }
  113. </script>
  114. <style>
  115. #myChart, #mountNode{
  116. width: 100%;
  117. }
  118. </style>