技術共有

Vue Echarts の 2 次元配列は最大値、最小値、インデックスを取得します

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

レジェンド効果を実感する

最大値を取得する方法:

  1. maxSecond(array) {
  2. let max = Number.MIN_SAFE_INTEGER;
  3. for (let i = 0; i < array.length; i++) {
  4. const secondElement = parseInt(array[i][1]);
  5. if (secondElement > max) {
  6. max = secondElement;
  7. }
  8. }
  9. return max;
  10. },

最大値インデックスを取得します。

  1. maxSecondIndex(array) {
  2. let max = Number.MIN_SAFE_INTEGER;
  3. let maxIndex = -1;
  4. for (let i = 0; i < array.length; i++) {
  5. const secondElement = parseInt(array[i][1]);
  6. if (secondElement > max) {
  7. max = secondElement;
  8. maxIndex = i;
  9. }
  10. }
  11. return maxIndex;
  12. },

最小値を取得する方法:

  1. minSecond(array) {
  2. let min = Number.MAX_SAFE_INTEGER;
  3. for (let i = 0; i < array.length; i++) {
  4. const secondElement = parseInt(array[i][1]);
  5. if (secondElement < min) {
  6. min = secondElement;
  7. }
  8. }
  9. return min;
  10. },

最小値インデックスを取得します。

  1. minSecondIndex(array) {
  2. let min = Number.MAX_SAFE_INTEGER;
  3. let minIndex = -1;
  4. for (let i = 0; i < array.length; i++) {
  5. const secondElement = parseInt(array[i][1]);
  6. if (secondElement < min) {
  7. min = secondElement;
  8. minIndex = i;
  9. }
  10. }
  11. return minIndex;
  12. },
  1. // 按类型柱状图1
  2. setLine1(data) {
  3. var newData = []
  4. data.forEach(thisData => {
  5. var td =[]
  6. td.push(thisData.recordDate)
  7. td.push(thisData.totalCount)
  8. newData.push(td)
  9. })
  10. const max = this.maxSecond(newData)
  11. const maxIndex = this.maxSecondIndex(newData)
  12. const min = this.minSecond(newData)
  13. const minIndex = this.minSecondIndex(newData)
  14. var option3;
  15. option3 = {
  16. title: {
  17. text: '操作票数量'
  18. },
  19. tooltip: {
  20. trigger: 'axis'
  21. },
  22. legend: {
  23. data: ['数量']
  24. },
  25. calculable: true,
  26. xAxis: {
  27. type: 'category',
  28. boundaryGap: false,
  29. },
  30. yAxis: {
  31. type: 'value'
  32. },
  33. series: [
  34. {
  35. name: '操作票',
  36. data: newData,
  37. markPoint: {
  38. data: [
  39. { name: 'Max', value: max, xAxis: maxIndex, yAxis: max },
  40. { name: 'Min', value: min, xAxis: minIndex, yAxis: min }
  41. ],
  42. label: {
  43. show: true,
  44. color: '#fff', // 修改字体颜色为红色
  45. fontSize:17
  46. }
  47. },
  48. type: 'bar',
  49. symbol: 'none', //取消折点圆圈
  50. smooth: true, //折线平滑
  51. itemStyle: {
  52. color: new echarts.graphic.LinearGradient(
  53. 0, 0, 0, 1,
  54. [
  55. {offset: 0, color: '#0cbd9a'}, // 渐变起始处的颜色:淡蓝色
  56. {offset: 1, color: '#29bf71'} // 渐变结束处的颜色:浅蓝色
  57. ]
  58. )
  59. },
  60. // 提示框展示配置
  61. tooltip: {
  62. // 提示框展示的内容
  63. valueFormatter: function (value) {
  64. return value + "张";
  65. },
  66. },
  67. }
  68. ]
  69. };
  70. if (this.dataEchart == null || this.dataEchart == '' || this.dataEchart == undefined) {
  71. this.dataEchart = echarts.init(this.$refs.dataEchart1, 'macarons')
  72. }
  73. this.dataEchart.clear()
  74. this.dataEchart.setOption(option3,true)
  75. },

コードに従って値を置き換えることで、上の図の効果を実現できます。