视觉映射组件,将数据映射到视觉元素;visualMap 组件可以定义多个,从而可以同时对数据中的多个维度进行视觉映射
visualMap文档 https://echarts.apache.org/zh/option.html#visualMap

视觉元素可以是:

  • symbol: 图元的图形类别
  • symbolSize: 图元的大小
  • color: 图元的颜色。
  • colorAlpha: 图元的颜色的透明度
  • opacity: 图元以及其附属物(如文字标签)的透明度
  • colorLightness: 颜色的明暗度
  • colorSaturation: 颜色的饱和度
  • colorHue: 颜色的色调

简单的 visualMap配置
image.png

  1. const option = {
  2. visualMap: [
  3. { // 第一个 visualMap 组件
  4. type: 'continuous', // 定义为连续型 visualMap
  5. },
  6. { // 第二个 visualMap 组件
  7. type: 'piecewise', // 定义为分段型 visualMap
  8. }
  9. ],
  10. };
  11. visualMap: {
  12. min: 0,
  13. max: 100,
  14. calculable: true,
  15. realtime: false,
  16. inRange: {
  17. colorLightness: [0, 1], // 明暗度范围是 0 - 1
  18. color: ["#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8", "#ffffbf", "#fee090", "#fdae61", "#f46d43", "#d73027", "#a50026"]
  19. }
  20. },

image.png

visualMap属性

  1. visualMap = [
  2. {
  3. show: true, //是否显示 visualMap-continuous 组件。如果设置为 false,不会显示,但是数据映射的功能还存在
  4. type: "continuous", // 定义为连续型 viusalMap
  5. min: 10, //指定 visualMapContinuous 组件的允许的最小值
  6. max: 100, //指定 visualMapContinuous 组件的允许的最大值
  7. range: [15, 40], //指定手柄对应数值的位置。range 应在 min max 范围内
  8. calculable: true, //是否显示拖拽用的手柄(手柄能拖拽调整选中范围)
  9. realtime: true, //拖拽时,是否实时更新
  10. inverse: false, //是否反转 visualMap 组件
  11. precision: 0, //数据展示的小数精度,默认为0,无小数点
  12. itemWidth: 20, //图形的宽度,即长条的宽度。
  13. itemHeight: 140, //图形的高度,即长条的高度。
  14. align: "auto", //指定组件中手柄和文字的摆放位置.可选值为:'auto' 自动决定。'left' 手柄和label在右。'right' 手柄和label在左。'top' 手柄和label在下。'bottom' 手柄和label在上。
  15. text: ["High", "Low"], //两端的文本
  16. textGap: 10, //两端文字主体之间的距离,单位为px
  17. dimension: 2, //指定用数据的『哪个维度』,映射到视觉元素上。『数据』即 series.data。 可以把 series.data 理解成一个二维数组,其中每个列是一个维度,默认取 data 中最后一个维度
  18. seriesIndex: 1, //指定取哪个系列的数据,即哪个系列的 series.data,默认取所有系列
  19. hoverLink: true, //鼠标悬浮到 visualMap 组件上时,鼠标位置对应的数值 在 图表中对应的图形元素,会高亮
  20. inRange: {
  21. //定义 在选中范围中 的视觉元素
  22. color: ["#121122", "rgba(3,4,5,0.4)", "red"],
  23. symbolSize: [30, 100],
  24. },
  25. outOfRange: {
  26. //定义 在选中范围外 的视觉元素。
  27. color: ["#121122", "rgba(3,4,5,0.4)", "red"],
  28. symbolSize: [30, 100],
  29. },
  30. zlevel: 0, //所属图形的Canvas分层,zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面
  31. z: 2, //所属组件的z分层,z值小的图形会被z值大的图形覆盖
  32. left: "center", //组件离容器左侧的距离,'left', 'center', 'right','20%'
  33. top: "top", //组件离容器上侧的距离,'top', 'middle', 'bottom','20%'
  34. right: "auto", //组件离容器右侧的距离,'20%'
  35. bottom: "auto", //组件离容器下侧的距离,'20%'
  36. orient: "vertical", //图例排列方向
  37. padding: 5, //图例内边距,单位px 5 [5, 10] [5,10,5,10]
  38. backgroundColor: "transparent", //标题背景色
  39. borderColor: "#ccc", //边框颜色
  40. borderWidth: 0, //边框线宽
  41. textStyle: mytextStyle, //文本样式
  42. formatter: function (value) {
  43. //标签的格式化工具。
  44. return "aaaa" + value; // 范围标签显示内容。
  45. },
  46. },
  47. {
  48. show: true, //是否显示 visualMap-continuous 组件。如果设置为 false,不会显示,但是数据映射的功能还存在
  49. type: "piecewise", // 定义为分段型 visualMap
  50. splitNumber: 5, //对于连续型数据,自动平均切分成几段。默认为5段
  51. pieces: [
  52. //自定义『分段式视觉映射组件(visualMapPiecewise)』的每一段的范围,以及每一段的文字,以及每一段的特别的样式
  53. { min: 1500 }, // 不指定 max,表示 max 为无限大(Infinity)。
  54. { min: 900, max: 1500 },
  55. { min: 310, max: 1000 },
  56. { min: 200, max: 300 },
  57. { min: 10, max: 200, label: "10 到 200(自定义label)" },
  58. { value: 123, label: "123(自定义特殊颜色)", color: "grey" }, // 表示 value 等于 123 的情况。
  59. { max: 5 }, // 不指定 min,表示 min 为无限大(-Infinity)。
  60. ],
  61. categories: ["严重污染", "重度污染", "中度污染", "轻度污染", "良", "优"], //用于表示离散型数据(或可以称为类别型数据、枚举型数据)的全集
  62. min: 10, //指定 visualMapContinuous 组件的允许的最小值
  63. max: 100, //指定 visualMapContinuous 组件的允许的最大值
  64. minOpen: true, //界面上会额外多出一个『< min』的选块
  65. maxOpen: true, //界面上会额外多出一个『> max』的选块。
  66. selectedMode: "multiple", //选择模式,可以是:'multiple'(多选)。'single'(单选)。
  67. inverse: false, //是否反转 visualMap 组件
  68. precision: 0, //数据展示的小数精度,默认为0,无小数点
  69. itemWidth: 20, //图形的宽度,即长条的宽度。
  70. itemHeight: 140, //图形的高度,即长条的高度。
  71. align: "auto", //指定组件中手柄和文字的摆放位置.可选值为:'auto' 自动决定。'left' 手柄和label在右。'right' 手柄和label在左。'top' 手柄和label在下。'bottom' 手柄和label在上。
  72. text: ["High", "Low"], //两端的文本
  73. textGap: 10, //两端文字主体之间的距离,单位为px
  74. showLabel: true, //是否显示每项的文本标签
  75. itemGap: 10, //每两个图元之间的间隔距离,单位为px
  76. itemSymbol: "roundRect", //默认的图形。可选值为: 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
  77. dimension: 2, //指定用数据的『哪个维度』,映射到视觉元素上。『数据』即 series.data。 可以把 series.data 理解成一个二维数组,其中每个列是一个维度,默认取 data 中最后一个维度
  78. seriesIndex: 1, //指定取哪个系列的数据,即哪个系列的 series.data,默认取所有系列
  79. hoverLink: true, //鼠标悬浮到 visualMap 组件上时,鼠标位置对应的数值 在 图表中对应的图形元素,会高亮
  80. inRange: {
  81. //定义 在选中范围中 的视觉元素
  82. color: ["#121122", "rgba(3,4,5,0.4)", "red"],
  83. symbolSize: [30, 100],
  84. },
  85. outOfRange: {
  86. //定义 在选中范围外 的视觉元素。
  87. color: ["#121122", "rgba(3,4,5,0.4)", "red"],
  88. symbolSize: [30, 100],
  89. },
  90. zlevel: 0, //所属图形的Canvas分层,zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面
  91. z: 2, //所属组件的z分层,z值小的图形会被z值大的图形覆盖
  92. left: "center", //组件离容器左侧的距离,'left', 'center', 'right','20%'
  93. top: "top", //组件离容器上侧的距离,'top', 'middle', 'bottom','20%'
  94. right: "auto", //组件离容器右侧的距离,'20%'
  95. bottom: "auto", //组件离容器下侧的距离,'20%'
  96. orient: "vertical", //图例排列方向
  97. padding: 5, //图例内边距,单位px 5 [5, 10] [5,10,5,10]
  98. backgroundColor: "transparent", //标题背景色
  99. borderColor: "#ccc", //边框颜色
  100. borderWidth: 0, //边框线宽
  101. textStyle: mytextStyle, //文本样式
  102. formatter: function (value) {
  103. //标签的格式化工具。
  104. return "aaaa" + value; // 范围标签显示内容。
  105. },
  106. },
  107. ];