2015-06-17 31 views
0

我開始嘗試使用Highcharts。更容易的方法使用highcharts繪製條形圖?

看來,爲了畫一個柱狀圖,我需要填補這兩個屬性是這樣的:

 xAxis: { 
      categories: [ 
       'Jan', 
       'Feb', 
       'Mar', 
       'Apr', 
       'May', 
       'Jun', 
       'Jul', 
       'Aug', 
       'Sep', 
       'Oct', 
       'Nov', 
       'Dec' 
      ], 
      crosshair: true 
     }, 
     series: [{ 
      name: 'Tokyo', 
      data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] 
     }, { 
      name: 'New York', 
      data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3] 

     }, { 
      name: 'London', 
      data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2] 
     }, { 
      name: 'Berlin', 
      data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1] 
     } 

現在我有如下表:

╔════╦════════╦════════╗ 
║ ID ║ State ║ Number ║ 
╠════╬════════╬════════╣ 
║ A ║ S1  ║  7 ║ 
║ B ║ S1  ║  6 ║ 
║ B ║ S2  ║  5 ║ 
║ C ║ S3  ║  4 ║ 
║ C ║ S1  ║  3 ║ 
╚════╩════════╩════════╝ 

我想要的條形圖是

  1. X代表ID
  2. 對於每個ID,我想繪製每個可能的State的編號。

所以看起來我需要Highcharts以下屬性:

 xAxis: { 
      categories: [ 
       'A', 
       'B', 
       'C' 
      ], 
      crosshair: true 
     }, 
     series: [{ 
      name: 'S1', 
      data: [7, 6, 3] 
     }, { 
      name: 'S2', 
      data: [0, 5, 0]  
     }, { 
      name: 'S3', 
      data: [0, 0, 4] 
     } 
     } 

它是正確的嗎?


這麼看來,我需要仔細地將我的原始表(在現實生活中它可以更大,更ID和美國)的性能,並填寫0ID■不要有Number誰對於某些State s。例如,我可能不得不使用字典詞典來存儲轉換後的表格。

有沒有簡單的方法來實現呢?

回答

1

是的,有一件事在你的情況下是多餘的 - 它是關於填滿零。反而提供一些索引類別和改變數據格式。

例如:

name: 'S2', 
data: [0, 5, 0] 

可以改成:

name: 'S2', 
data: [ [1, 5] ] 

和數量5將連接到該類別索引1,可鏈接到類別名稱B

所以我會在這些步驟中格式化的數據:

  • 創建類別沒有重複陣列
  • 分割的數據到每個點單獨的系列
  • (或行/數字 - 無論你喜歡叫它它)設置相應類別的索引

請注意,這只是一個建議,可能有一些內置方法,但它可以做得更容易一些,但是。