2016-07-25 2 views
3

Ссылаясь этот пример, чтобы создать разброс граф с помощью echarts библиотеки: Basic ScattergraphНастройка этикетки в рассеивают графике в echarts по Baidu

Мой код это выглядит следующим образом:

option ={ 
      xAxis : [ 
         { 
          type : 'value', 
          scale:true 
         } 
        ], 
      yAxis : [ 
         { 
          type : 'value', 
          scale:true 
         } 
        ], 
      series : [ 
         { 
          symbolSize: 40, 
          itemStyle: { 
             normal: { 
                color: 'lightblue', 
                borderWidth: 4, 
                label : { 
                   show: true, 
                   position: 'inside', 
                   formatter: function(v) 
                   { 
                    if (v==[161.2, 51.6]) 
                     return 'a' 
                    else 
                     return v 
                   } 
                  } 
               } 
             }, 
          type:'scatter', 
          data: [ 
            [161.2, 51.6],[167.5, 59.0],[157.0, 63.0],[155.8, 53.6], 
            [170.0, 59.0], [166.0, 69.8], [176.2, 66.8] 
            ],  
         } 
        ] 
     }; 

В formatter функции внутри series Я пытаюсь сопоставить свою переменную 'v' с точкой координат из данных. Но это условие не выполняется. Где я иду не так? Я вижу только [object Object] во всех пузырьках. Пожалуйста помоги.

ответ

2

Если вы используете версию Echarts2.x, код выглядит следующим образом:

option ={ 
    xAxis : [ 
     { 
      type : 'value', 
      scale:true 
     } 
    ], 
    yAxis : [ 
     { 
      type : 'value', 
      scale:true 
     } 
    ], 
    series : [ 
     { 
      symbolSize: 40, 
      itemStyle: { 
       normal: { 
        color: 'lightblue', 
        borderWidth: 4, 
        label : { 
         show: true, 
         position: 'inside', 
         formatter: function(data){ 
          var v = data.value; 
          if (v[0]==161.2 && v[1]==51.6) 
           return 'a' 
          else 
           return v 
         } 
        } 
       } 
      }, 
      type:'scatter', 
      data: [ 
       [161.2, 51.6],[167.5, 59.0],[157.0, 63.0],[155.8, 53.6], 
       [170.0, 59.0], [166.0, 69.8], [176.2, 66.8] 
      ],  
     } 
    ] 
}; 

параметр formatter функции является объект, который является объектом точка на разброс, его структура выглядит следующим образом:

$vars:Array[3] 
color:"lightblue" 
componentSubType:"scatter" 
componentType:"series" 
data:Array[2] 
dataIndex:0 
dataType:undefined 
name:"" 
seriesIndex:0 
seriesName:"-" 
seriesType:"scatter" 
status:"normal" 
value:Array[2] 

Таким образом, параметр не является массивом, который вы хотели. Атрибут itemStyle используется для установки графического стиля. Атрибут label используется для установки текстовой метки на графике, которая может использоваться для объяснения некоторых данных о графике. Например, значение, имя и т. Д. В Echarts3.x, чтобы сделать структуру всей конфигурации более плоской и разумной, label был выведен с itemStyle на том же уровне. например, itemStyle имеют два состояния: normal и emphasis. если вы используете версию Echarts3.x, код выглядит следующим образом:

option ={ 
    xAxis : [ 
     { 
      type : 'value', 
      scale:true 
     } 
    ], 
    yAxis : [ 
     { 
      type : 'value', 
      scale:true 
     } 
    ], 
    series : [ 
     { 
      symbolSize: 40, 
      itemStyle: { 
       normal: { 
        color: 'lightblue', 
        borderWidth: 4, 
       } 
      }, 
      label : { 
       normal: { 
        show: true, 
        position: 'inside', 
        formatter: function(data){ 
         var v = data.value; 
         if (v[0]==161.2 && v[1]==51.6) 
          return 'a' 
         else 
          return v 
        } 
       } 
      }, 
      type:'scatter', 
      data: [ 
       [161.2, 51.6],[167.5, 59.0],[157.0, 63.0],[155.8, 53.6], 
       [170.0, 59.0], [166.0, 69.8], [176.2, 66.8] 
      ],  
     } 
    ] 
}; 
Смежные вопросы