2013-06-07 7 views
10

this.x के लिए, जब मैं में डेटा धक्का कोड के माध्यम से मैं सूचकांक स्थान मिल रहा है। यदि मैं डेटा को अलग से पॉप्युलेट करता हूं, तो निम्न कोड की तरह, this.x सही आइटम देता है। मैं इस समस्या को कैसे हल कर सकता हूं?Highcharts टूलटिप फ़ॉर्मेटर

वर्क्स

xAxis: { 
    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
}, 

series: [{ 
    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]   
}] 

सूचकांक स्थान this.x यहाँ

var points = [{ 
    Name: 'good', 
    Y: '15000' 
}, { 
    Name: 'baad', 
    Y: '3000' 
}, { 
    Name: 'wow', 
    Y: '2000' 
}]; 

var chartData = { 
    GetChartSeries: function (points, name) { 

     var seriesData = []; 
     if (points != null && points != 'undefined') { 
      for (i=0; i<points.length; i++) { 
       seriesData.push({ 
        name: ""+points[i].Name, 
        y: parseFloat(points[i].Y) 
        //,color: '' 
       }); 
      } 
     } 
     return seriesData; 
    } 
}; 


$(function() { 
    $('#container').highcharts({ 
     chart: { 
      type: 'column', 
      margin: [ 50, 50, 100, 80], 
      borderColor: '#A4A4A4', 
      borderRadius: 5, 
      borderWidth: 2 
     }, 
     legend: { 
      enabled: false 
     }, 
     title: { 
      text: 'Graduation Year Breakdown' 
     }, 
     colors: ['#790000'], 
     legend: { 
      enabled: false 
     }, 
     plotOptions: { 
      series: { 
       /* 
       dataLabels: { 
        enabled: true, 
        color: 'red' 
       }, 
       */ 
       borderRadius: 3, 
       colorByPoint: true 
      } 
     }, 
     tooltip: { 
      formatter: function() { 
       return '<b>'+ Highcharts.numberFormat(this.y, 0) +'</b><br/>'+ 
        'in year: '+ this.x; 
      } 
     }, 
     xAxis: { 
      categories: [], 
      labels: { 
       rotation: -45, 
       align: 'right', 
       style: { 
        fontSize: '13px', 
        fontFamily: 'Verdana, sans-serif' 
       } 
      } 
     }, 
     yAxis: { 
      min: 0, 
      title: { 
       text: 'Number of Students' 
      } 
     }, 
     series: [{ 
      //name: 'Population', 
      data: chartData.GetChartSeries(points, ""),//[4000, 3400, 2000, 34000, 120000],     
      dataLabels: { 
       enabled: true, 
       //rotation: -90, 
       color: '#4F4F4F', 
       align: 'center',//'right', 
       //x: 4, 
       //y: 10, 
       style: { 
        fontSize: '12px', 
        //fontWeight: 'bold', 
        fontFamily: 'Verdana, sans-serif' 
       } 
      } 

     }] 
    }); 
}); 
+0

पूरी तरह सुनिश्चित नहीं हैं कि यहाँ क्या कहा जा रहा है। क्या आप इसे जेएसएफडल में डाल सकते हैं या यह दिखाने के लिए कुछ कर सकते हैं कि क्या काम कर रहा है/नहीं, या समझाओ कि आप क्या उम्मीद कर रहे हैं? – NT3RP

+0

यह मेरा कोड, टूल टिप देखने के लिए कृपया मून बार पर होवर करें। http://jsfiddle.net/tahirjadoon/cPT45/ यह नीले बार से अधिक उच्च चार्ट द्वारा आधिकारिक बेला, माउस है और आप सही टूल टिप दिखाई देंगे:: http: // आप एक साल में "0" 15000 देखेंगे jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/column-rotated-labels/ अब, अगर मैं उच्च चार्ट प्रति मेरी कोड बदलने तो मैं सही उपकरण टिप देखता हूं। अगर मैं अपने साथ उच्च चार्ट कोड बदलता हूं तो उन्हें भी वही समस्या है। जिस तरह से मैं डेटा पॉप्युलेट करता हूं, टूल टिप मुझे "वर्ष" के बजाय इंडेक्स स्थान देता है। –

उत्तर

31

के लिए बाहर धक्का दे दिया हो रही है जब मैं क्यों अपने समाधान काम नहीं करता है के रूप में अनिश्चित हूँ, मैं एक प्रस्ताव कर सकते हैं दूसरा तरीका।

tooltip formatter समारोह विभिन्न मापदंडों के एक नंबर के लिए उपयोग किया है। this.x के बजाय, आप this.point.name का उपयोग कर सकते हैं।

उदाहरण के लिए:

formatter: function() { 
    // If you want to see what is available in the formatter, you can 
    // examine the `this` variable. 
    //  console.log(this); 

    return '<b>'+ Highcharts.numberFormat(this.y, 0) +'</b><br/>'+ 
     'in year: '+ this.point.name; 
} 
+0

धन्यवाद! मैं कुछ इसे कैसे याद किया। Console.log (यह) के लिए –

+7

+1, मुझे यह नहीं पता था! – PeerBr

संबंधित मुद्दे