当前位置:   article > 正文

vue3中,vue-echarts基本使用(柱状图、饼图、折线图)_vue3.0+typescript+element-plus echarts折线图

vue3.0+typescript+element-plus echarts折线图

注意:vue-echarts在使用前要先安装echarts,不要只安装vue-echarts这一个

echarts官网地址:Apache EChartsApache ECharts,一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。icon-default.png?t=N7T8https://echarts.apache.org/zh/index.html

安装vue-echarts
  1. npm i -S vue-echarts echarts
  2. //cnpm 安装
  3. cnpm i -S vue-echarts echarts

注意:Vue 2 下使用 vue-echarts,必须还要安装 @vue/composition-api :

  1. npm i -D @vue/composition-api
  2. //cnpm 安装
  3. cnpm i -D @vue/composition-api
main.js中全局注册组件
  1. import Echarts from "vue-echarts"
  2. import * as echarts from "echarts"
  3. app.component("v-chart", Echarts)
  4. app.config.globalProperties.$echarts = echarts

 
自适应屏幕

方式1:autoresize:true  【推荐】

该方式自适应需满足两个条件:

  • 加上autoresize属性。
  • 图表外层需要指定vw单位的宽度,如width:100vw;
  1. <template>
  2. <div style="width:100vw">
  3. <v-chart autoresize :option="option_column" style="height: 400px"></v-chart>
  4. </div>
  5. </template>
基本使用  
  • 柱状态
  1. <template>
  2. <v-chart ref="mychart1" class="chart" :option="optionBar"></v-chart>
  3. </template>
  4. <script setup>
  5. import { onMounted, reactive, watch, ref, onBeforeUnmount, shallowRef } from 'vue'
  6. // 渲染数
  7. mychart1.value.setOption(renderLineOptions())
  8. // 定义属性
  9. const mychart1 = ref(null)
  10. const optionBar = ref(null)
  11. // 坐标轴及其属性定义
  12. const renderLineOptions = () => {
  13. return {
  14. grid: {
  15. left: '3%',
  16. right: '4%',
  17. bottom: '8%',
  18. containLabel: true
  19. },
  20. xAxis: {
  21. data: data.chartName, // x轴的标题(定义的变量),可以是直接的数组["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
  22. axisLabel: {
  23. show: true,
  24. textStyle: {
  25. fontSize: 15// 字体大小
  26. }
  27. },
  28. axisLabel: {
  29. show: true,
  30. rotate: 30 // 设置x轴标签旋转角度
  31. }
  32. },
  33. yAxis: {
  34. name: '工时/h',
  35. nameTextStyle: {
  36. nameLocation: 'start'
  37. },
  38. axisLabel: {
  39. show: true,
  40. fontSize: 16
  41. },
  42. axisLine: {
  43. show: true, // 是否显示Y轴线
  44. lineStyle: {
  45. width: 1, // 线的大小
  46. type: 'solid' // Y轴线的类型
  47. }
  48. }
  49. },
  50. series: [
  51. {
  52. // 渲染的数据,可以使用 [5, 20, 36, 10, 10, 20],也可以是定义的变量(记得赋值)
  53. data: data.chartRows,
  54. type: 'bar',
  55. barWidth: '20%',
  56. itemStyle: {
  57. // 通常情况下:
  58. color: function (params) {
  59. // 每根柱子的颜色
  60. return data.colorList[params.dataIndex]
  61. },
  62. offset: 6 // 偏移量
  63. },
  64. label: {
  65. show: true,
  66. position: 'top',
  67. fontSize: 14,
  68. formatter: (params) => {
  69. const reData = (params.data || 0).toString().replace(/(\d)(?=(?:\d{3}) + $)/g, '$1,')
  70. return reData
  71. }
  72. }
  73. }
  74. ]
  75. }
  76. }
  77. </script>

  • 饼图 
    1. <template>
    2. <v-chart ref="mychart1" class="chart" :option="optionPie "></v-chart>
    3. </template>
    4. <script setup>
    5. import { onMounted, reactive, watch, ref, onBeforeUnmount, shallowRef } from 'vue'
    6. //饼图的数据格式对应的是key:value的形式
    7. // data.pieNumber = [
    8. // { value:1, name: "开发" },
    9. // { value:2, name: "维护" },
    10. // { value:3, name: "测试" },
    11. // { value:4, name: "BUG修复" },
    12. // { value:5, name: "其他" }
    13. // ]
    14. // 渲染数
    15. mychart1.value.setOption(renderPieOptions ())
    16. // 定义属性
    17. const mychart1 = ref(null)
    18. const optionPie = ref(null)
    19. const renderPieOptions = () => {
    20. return {
    21. tooltip: {
    22. trigger: "item",
    23. formatter: "{a} <br/>{b} : {c} 个,占比: ({d}%)"
    24. },
    25. legend: {
    26. orient: "vertical",
    27. position: 'right',
    28. right: '2%',
    29. top: '20%',
    30. data: data.pieTitle //这里的渲染的数据需要与series里面渲染的数据中的name保持一致
    31. },
    32. series: [
    33. {
    34. name: "任务类型占比分析表",
    35. type: "pie",
    36. radius: "70%",
    37. center: ["45%", "55%"],
    38. data: data.pieNumber, //渲染的数据
    39. emphasis: {
    40. itemStyle: {
    41. shadowBlur: 10,
    42. shadowOffsetX: 0,
    43. shadowColor: "rgba(0, 0, 0, 0.5)"
    44. }
    45. },
    46. label: {
    47. show: true, // 显示标签
    48. formatter: '{b}个数占比:{d}%'
    49. }
    50. }
    51. ]
    52. }
    53. }
    54. </script>

  •  折线图
    1. xAxis: {
    2. type: 'category',
    3. data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    4. },
    5. yAxis: {
    6. type: 'value'
    7. },
    8. series: [{
    9. data: [820, 932, 901, 934, 1290, 1330, 1320],
    10. type: 'line'
    11. }]

设置y、x轴步长、最大值、最小值
  1. xAxis: {
  2. name:'天',
  3. type: 'value',
  4. interval:5, // 步长
  5. min:10, // 起始
  6. max:50 // 终止
  7. },
  8. yAxis: {
  9. name:'合同个数',
  10. type: 'value',
  11. interval:1, // 步长
  12. min:0, // 起始
  13. max:5 // 终止
  14. },
 
配置样式 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/186559
推荐阅读
相关标签
  

闽ICP备14008679号