• vue+echarts画甘特图


        vue项目中添加echarts,只需要增加echarts依赖,然后在main.js中引入echarts就可以使用了。

        1、npm install echarts --save

        2、修改main.js

    1. import * as echarts from 'echarts'
    2. Vue.prototype.$echarts = echarts

        3、具体页面使用:

    1. <template>
    2. <div class="about">
    3. <h1>This is echarts pageh1>
    4. <div id="myechart" style="height:500px;width:1000px;" >div>
    5. div>
    6. template>
    7. <script>
    8. export default{
    9. name:'MyEchart',
    10. mounted(){
    11. this.drawEchart()
    12. },
    13. methods:{
    14. drawEchart(){
    15. let myechart = this.$echarts.init(document.getElementById("myechart"))
    16. myechart.setOption({
    17. title:{text:"gant"},
    18. xAxis:{
    19. type:'value'
    20. },
    21. yAxis:{
    22. type:'category',
    23. data:["pro1","pro2","pro3","pro4","pro5","pro6"]
    24. },
    25. series:[
    26. {
    27. type:'bar',
    28. data:[10,20,30,46,78,22]
    29. }
    30. ]
    31. })
    32. }
    33. }
    34. }
    35. script>

        展示效果:

        甘特图在这个图形的基础上还需要增加数据,形成一个不断迭代的效果。

    1. {
    2. type:'bar',
    3. name:'base',
    4. //stack:'Total',
    5. data:[10,20,30,46,78,22]
    6. },
    7. {
    8. type:'bar',
    9. name:'data2',
    10. //stack:'Total',
    11. data:[20,20,30,20,10,20]
    12. }

        如果不做设置,效果如下所示: 

        两组数据都从原始位置开始,我们想要的结果是叠加,这里只需要增加一个参数stack:'',指定一个相同的名称,效果如下:

     

        我们如果不想展示第一段,只展示第二段,这时候可以设置第一个数据集对应的样式:

    1. itemStyle{
    2. borderColor:'transparent',
    3. color:'transparent'
    4. }

        展示效果:

     

     

     

        我们最终需要的效果如下所示:

     

        从上面的示例,我们可以这样来实现, 把两组数据看作一组,每一组第一个数据集展示隐藏,这里如果是项目进度图,我们可以把开始时间、结束时间作为一组,结束时间与开始时间中间这一段时间就是持续时间,这个时间在这里是一个增量,就是第二个数据集是展示在第一个数据集的基础上,它不能再直接使用结束时间,而是使用间隔时间。

        数据集:

    1. series:[
    2. {
    3. type:'bar',
    4. name:'base',
    5. stack:'Total',
    6. data:[86,41,119,46],
    7. itemStyle:{
    8. borderColor:'transparent',
    9. color:'transparent'
    10. }
    11. },
    12. {
    13. type:'bar',
    14. name:'data2',
    15. stack:'Total',
    16. data:[100,100,100,100]
    17. },
    18. {
    19. type:'bar',
    20. name:'data3',
    21. stack:'Total',
    22. data:[75,67,64,52],
    23. itemStyle:{
    24. borderColor:'transparent',
    25. color:'transparent'
    26. }
    27. },
    28. {
    29. type:'bar',
    30. name:'data4',
    31. stack:'Total',
    32. data:[100,100,100,100]
    33. },
    34. {
    35. type:'bar',
    36. name:'data5',
    37. stack:'Total',
    38. data:[44,90,154,84],
    39. itemStyle:{
    40. borderColor:'transparent',
    41. color:'transparent'
    42. }
    43. },
    44. {
    45. type:'bar',
    46. name:'data6',
    47. stack:'Total',
    48. data:[100,100,100,100]
    49. },
    50. {
    51. type:'bar',
    52. name:'data7',
    53. stack:'Total',
    54. data:[46,183,'-',188],
    55. itemStyle:{
    56. borderColor:'transparent',
    57. color:'transparent'
    58. }
    59. },
    60. {
    61. type:'bar',
    62. name:'data8',
    63. stack:'Total',
    64. data:[100,100,'-',100]
    65. },
    66. {
    67. type:'bar',
    68. name:'data9',
    69. stack:'Total',
    70. data:[40,'-','-','-'],
    71. itemStyle:{
    72. borderColor:'transparent',
    73. color:'transparent'
    74. }
    75. },
    76. {
    77. type:'bar',
    78. name:'data8',
    79. stack:'Total',
    80. data:[{value:100,itemStyle:{normal:{color:'purple'}}},'-','-','-']
    81. }
    82. ]

        最终的一个效果:

     

        这个里面,对应每一个数据项都可以设置显示颜色,具体操作就是把data:[]数组变更为:

    1. data:[
    2. {
    3. value:100,
    4. itemStyle:
    5. {
    6. normal:
    7. {color:'purple'}
    8. }
    9. },
    10. '-',
    11. '-',
    12. '-']

        原来的数据项,变为一个对象,对象的值value对应原来的数字值,样式则使用itemStyle属性设置。 

        甘特图绘制需要注意的地方:

        1、数据显示叠加,使用属性stack。

        2、隐藏开始时间,设置显示透明即可。结束时间点不能直接设置结束时间,这是一个增量,需要设置时间间隔。

        3、每一个数据项展示,可以单独设置样式,比如颜色,可以把data数组做修改,原来单一的数字值,修改为对象,包含value,itemStyle等属性。

  • 相关阅读:
    ADSP-21569/ADSP-21593的开发入门(中)
    STM32电源名词解析
    目录启示:PHP 与命名空间的声明
    产品关键词该怎么优化改进?
    java list集合运算
    猜一猜掌握哪个测试技能让你从容不破应对工作!
    嵌入式学习——硬件(ARM体系架构)——day51
    KNN——水果分类
    操作系统学习笔记6 | 进程调度
    AP5101C 高压线性恒流IC 宽电压6-100V LED汽车大灯照明 台灯LED矿灯 指示灯电源驱动
  • 原文地址:https://blog.csdn.net/feinifi/article/details/126687245