• 数据可视化ECharts:定制柱形图


    - 官网找到类似实例, 适当分析,并且引入到HTML页面中

     

    - 根据需求定制图表

    需求1: 修改图形大小 grid

    1. // 图标位置
    2. grid: {
    3. top: "10%",
    4. left: "22%",
    5. bottom: "10%"
    6. },

    需求2: 不显示x轴

    1. xAxis: {
    2. show: false
    3. },

    需求3: y轴相关定制

    - 不显示y轴线和相关刻度

    1. axisLine: {
    2. show: false
    3. },
    4. // 不显示刻度
    5. axisTick: {
    6. show: false
    7. },

    - y轴文字的颜色设置为白色

    1. axisLabel: {
    2. color: "#fff"
    3. },

    需求4: 修改第一组柱子相关样式(条状)

    1. name: "条",
    2. // 柱子之间的距离
    3. barCategoryGap: 50,
    4. //柱子的宽度
    5. barWidth: 10,
    6. // 柱子设为圆角
    7. itemStyle: {
    8. normal: {
    9. barBorderRadius: 20,
    10. }
    11. },

    - 设置第一组柱子内百分比显示数据

    1. label: {
    2. normal: {
    3. show: true,
    4. // 图形内显示
    5. position: "inside",
    6. // 文字的显示格式
    7. formatter: "{c}%"
    8. }
    9. },

    - 设置第一组柱子不同颜色

    1. // 声明颜色数组
    2. var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
    3. // 2. 给 itemStyle 里面的color 属性设置一个 返回值函数
    4. itemStyle: {
    5. normal: {
    6. barBorderRadius: 20,
    7. // params 传进来的是柱子对象
    8. console.log(params);
    9. // dataIndex 是当前柱子的索引号
    10. return myColor[params.dataIndex];
    11. }
    12. },

     

    传递进来的是柱子对象 

    需求5: 修改第二组柱子的相关配置(框状)

    1. name: "框",
    2. type: "bar",
    3. barCategoryGap: 50,
    4. barWidth: 15,
    5. itemStyle: {
    6. color: "none",
    7. borderColor: "#00c1de",
    8. borderWidth: 3,
    9. barBorderRadius: 15
    10. },
    11. data: [19325, 23438, 31000, 121594, 134141, 681807]
    12. }

    需求6: 给y轴添加第二组数据

    1. yAxis: [
    2. {
    3. type: "category",
    4. data: ["印尼", "美国", "印度", "中国", "世界人口(万)"],
    5. // 不显示y轴的线
    6. axisLine: {
    7. show: false
    8. },
    9. // 不显示刻度
    10. axisTick: {
    11. show: false
    12. },
    13. // 把刻度标签里面的文字颜色设置为白色
    14. axisLabel: {
    15. color: "#fff"
    16. }
    17. },
    18. {
    19. show: true,
    20. data: [702, 350, 610, 793, 664],
    21. // 不显示y轴的线
    22. axisLine: {
    23. show: false
    24. },
    25. // 不显示刻度
    26. axisTick: {
    27. show: false
    28. },
    29. axisLabel: {
    30. textStyle: {
    31. fontSize: 12,
    32. color: "#fff"
    33. }
    34. }
    35. }
    36. ],

    需求7: 设置两组柱子层叠以及更换数据

    1. // 给series 第一个对象里面的 添加
    2. yAxisIndex: 0,
    3. // 给series 第二个对象里面的 添加
    4. yAxisIndex: 1,
    5. // series 第一个对象里面的data
    6. data: [70, 34, 60, 78, 69],
    7. // series 第二个对象里面的data
    8. data: [100, 100, 100, 100, 100],
    9. // y轴更换第一个对象更换data数据
    10. data: ["HTML5", "CSS3", "javascript", "VUE", "NODE"],
    11. // y轴更换第二个对象更换data数据
    12. data:[702, 350, 610, 793, 664],

    完整代码:

    1. (function() {
    2. var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
    3. // 1. 实例化对象
    4. var myChart = echarts.init(document.querySelector(".bar2 .chart"));
    5. // 2. 指定配置和数据
    6. var option = {
    7. grid: {
    8. top: "10%",
    9. left: "22%",
    10. bottom: "10%"
    11. // containLabel: true
    12. },
    13. // 不显示x轴的相关信息
    14. xAxis: {
    15. show: false
    16. },
    17. // yAxis: 后面跟数组表示跟着是不同的对象
    18. yAxis: [
    19. {
    20. type: "category",
    21. // 默认坐标轴是反着的,通过这个可以变成正的
    22. inverse: true,
    23. data: ["HTML5", "CSS3", "javascript", "VUE", "NODE"],
    24. // 不显示y轴的线
    25. axisLine: {
    26. show: false
    27. },
    28. // 不显示刻度
    29. axisTick: {
    30. show: false
    31. },
    32. // 把刻度标签里面的文字颜色设置为白色
    33. axisLabel: {
    34. color: "#fff"
    35. }
    36. },
    37. {
    38. data: [702, 350, 610, 793, 664],
    39. inverse: true,
    40. // 不显示y轴的线
    41. axisLine: {
    42. show: false
    43. },
    44. // 不显示刻度
    45. axisTick: {
    46. show: false
    47. },
    48. // 把刻度标签里面的文字颜色设置为白色
    49. axisLabel: {
    50. color: "#fff"
    51. }
    52. }
    53. ],
    54. series: [
    55. {
    56. name: "条",
    57. type: "bar",
    58. data: [70, 34, 60, 78, 69],
    59. yAxisIndex: 0,
    60. // 修改第一组柱子的圆角
    61. itemStyle: {
    62. barBorderRadius: 20,
    63. // 此时的color 可以修改柱子的颜色
    64. color: function(params) {
    65. // params 传进来的是柱子对象
    66. console.log(params);
    67. // dataIndex 是当前柱子的索引号
    68. return myColor[params.dataIndex];
    69. }
    70. },
    71. // 柱子之间的距离
    72. barCategoryGap: 50,
    73. //柱子的宽度
    74. barWidth: 10,
    75. // 显示柱子内的文字
    76. label: {
    77. show: true,
    78. // 柱子内
    79. position: "inside",
    80. // {c} 会自动的解析为 数据 data里面的数据 c是数据值
    81. formatter: "{c}%"
    82. }
    83. },
    84. {
    85. name: "框",
    86. type: "bar",
    87. barCategoryGap: 50,
    88. barWidth: 15,
    89. yAxisIndex: 1,
    90. data: [100, 100, 100, 100, 100],
    91. itemStyle: {
    92. color: "none",
    93. borderColor: "#00c1de",
    94. borderWidth: 3,
    95. barBorderRadius: 15
    96. }
    97. }
    98. ]
    99. };
    100. // 3. 把配置给实例对象
    101. myChart.setOption(option);
    102. //4.让图表跟随屏幕自动去适用
    103. window.addEventListener("resize", function() {
    104. myChart.resize();
    105. });
    106. })();

  • 相关阅读:
    提升开发效率的低代码思路
    【开发篇】十、Spring缓存:手机验证码的生成与校验
    我理解的游戏数据模型
    班级校园网页设计作业 静态HTML我的班级网页 DW班级网站模板下载 大学生简单班级网页作品代码 我的大学网页制作 学生班级网页设计作业
    React-组件生命周期
    初识Cpp之 六、内存分配
    【10】使用Test类测试&ImGUI
    LVGL---windows PC模拟器(codeblocks)运行LVGL
    Java面试题(持续更新中)
    Transform介绍 - 源码分析(3)
  • 原文地址:https://blog.csdn.net/weixin_64612659/article/details/127574490