2012-05-14 68 views
8

我正在嘗試繪製一些圖表,並且遇到了這個奇怪的錯誤消息。以下是對工作的例子:flot:無法繪製包含在畫布內的標籤的餅圖

$.ajax({ 
    type: "GET", 
    dataType: "json", 
    url: "/data/active_projects_per_phase", 
    success: function (result) { 
     $.plot($("#active_per_phase"), result, { 
      series: { 
       pie: { 
        show: true, 
        label: { 
         show: true, 
         radius: 3/4, 
         formatter: function (label, series) { 
          return label + ': ' + series.data[0][1] + ' (' + Math.round(series.percent) + '%)'; 
         }, 
         background: { 
          opacity: 0.5 
         } 
        } 

       } 

      }, 
      legend: { 
       show: false 

      } 
     }); 

    } 
}); 

的URL返回以下數據:

[ 
    { 
    "data": 24, 
    "label": "\u0411\u0438\u0437\u043d\u0435\u0441-\u0438\u0434\u0435\u044f" 
    }, 
    { 
    "data": 31, 
    "label": "\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435" 
    }, 
    { 
    "data": 26, 
    "label": "\u0418\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435" 
    }, 
    { 
    "data": 1, 
    "label": "\u0417\u0430\u043a\u0440\u044b\u0442\u0438\u0435" 
    } 
] 

然而,它不會使用該數據並顯示「無法與內部包含帆布標籤畫大餅」錯誤:

[ 
    { 
    "data": 6, 
    "label": "\u0417\u0430\u043a\u0440\u044b\u0442" 
    }, 
    { 
    "data": 11, 
    "label": "\u041e\u0442\u043c\u0435\u043d\u0435\u043d" 
    }, 
    { 
    "data": 1, 
    "label": "\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d" 
    }, 
    { 
    "data": 5, 
    "label": "\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442" 
    }, 
    { 
    "data": 4, 
    "label": "\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443" 
    } 
] 

什麼是我錯過了圖表設置來克服這一點?

回答

10

flot的餅圖功能對圖例和標籤有限制。代碼確保圖例/標籤保持在畫布的邊界內,如果它沒有按照您所看到的那樣失敗。您的選項是:

  1. 讓你的畫布更大
  2. 讓您的標籤短
  3. 使用使用legend.container選項來指定外部div
+1

請問你能給出示例代碼嗎? – Smith

+0

3.選項不適用,因爲消息是針對$ p.series.pie.label,而不是圖例中的圖例。 ($ p是佔位符)。 – harveyt