ภาพรวม
VegaChart เป็นหนึ่งในการแสดงข้อมูลผ่านภาพที่เป็นไปได้ที่อาจสร้างขึ้นโดยใช้ Vega Visualization Grammar ซึ่งเป็นภาษาที่ใช้ประกาศสําหรับการสร้าง บันทึก และแชร์การออกแบบการแสดงภาพแบบอินเทอร์แอกทีฟ เมื่อใช้ Vega คุณจะอธิบายลักษณะที่ปรากฏของภาพและพฤติกรรมแบบอินเทอร์แอกทีฟของการแสดงภาพได้ในรูปแบบ JSON และสร้างมุมมองบนเว็บโดยใช้ Canvas หรือ SVG ได้
เมื่อวาด VegaChart คุณต้องใส่ข้อมูลจำเพาะในการสร้างแผนภูมิในไวยากรณ์การแสดงภาพ Vega ในตัวเลือก มีตัวอย่างบางส่วนของข้อกำหนดเฉพาะดังกล่าวด้านล่างและตัวอย่างอื่นๆ อีกหลายรายการในหน้าตัวอย่าง VegaChart
หมายเหตุ: แม้ว่า Google แผนภูมิ VegaChart จะวาดแผนภูมิ Vega ใดก็ได้ที่คุณระบุด้วยข้อกำหนดของ Vega JSON (รวมทุกอย่างใน แกลเลอรีตัวอย่าง) แต่ฟีเจอร์เพิ่มเติมที่ต้องเรียกใช้ Vega API ก็ยังยังไม่พร้อมให้บริการ
ตัวอย่างง่ายๆ แผนภูมิแท่ง
ต่อไปนี้เป็นตัวอย่างง่ายๆ ของ VegaChart ที่วาดแผนภูมิแท่ง (ดูตัวอย่างต้นฉบับ บทแนะนำโดยละเอียด และแผนภูมิแท่งในเครื่องมือแก้ไขแผนภูมิ Vega)
แม้ว่าสิ่งนี้จะเป็นอีกหนึ่งวิธีในการสร้างแผนภูมิแท่งใน Google แผนภูมิ แต่เราวางแผนที่จะผสานรวมฟีเจอร์ทั้งหมดของแผนภูมิแท่งและคอลัมน์อื่นๆ ในการใช้งานใหม่ตาม VegaChart นี้
ในตัวอย่างนี้ โปรดทราบว่าระบบจะแทนที่ตัวเลือก "data" ด้วยค่าต่อไปนี้ ซึ่งใช้ "datatable" จากการเรียกใช้Draw เป็น "source" สำหรับออบเจ็กต์ข้อมูลอื่นที่เรียกว่า "table" และใช้ "table" ในส่วนที่เหลือของข้อมูลจำเพาะของ Vega
  'data': [{'name': 'table', 'source': 'datatable'}],
<html>
  <head>
    <script src='https://www.gstatic.com/charts/loader.js'></script>
    <script>
      google.charts.load('upcoming', {'packages': ['vegachart']}).then(drawChart);
      function drawChart() {
        const dataTable = new google.visualization.DataTable();
        dataTable.addColumn({type: 'string', 'id': 'category'});
        dataTable.addColumn({type: 'number', 'id': 'amount'});
        dataTable.addRows([
          ['A', 28],
          ['B', 55],
          ['C', 43],
          ['D', 91],
          ['E', 81],
          ['F', 53],
          ['G', 19],
          ['H', 87],
        ]);
        const options = {
          "vega": {
            "$schema": "https://vega.github.io/schema/vega/v4.json",
            "width": 500,
            "height": 200,
            "padding": 5,
            'data': [{'name': 'table', 'source': 'datatable'}],
            "signals": [
              {
                "name": "tooltip",
                "value": {},
                "on": [
                  {"events": "rect:mouseover", "update": "datum"},
                  {"events": "rect:mouseout",  "update": "{}"}
                ]
              }
            ],
            "scales": [
              {
                "name": "xscale",
                "type": "band",
                "domain": {"data": "table", "field": "category"},
                "range": "width",
                "padding": 0.05,
                "round": true
              },
              {
                "name": "yscale",
                "domain": {"data": "table", "field": "amount"},
                "nice": true,
                "range": "height"
              }
            ],
            "axes": [
              { "orient": "bottom", "scale": "xscale" },
              { "orient": "left", "scale": "yscale" }
            ],
            "marks": [
              {
                "type": "rect",
                "from": {"data":"table"},
                "encode": {
                  "enter": {
                    "x": {"scale": "xscale", "field": "category"},
                    "width": {"scale": "xscale", "band": 1},
                    "y": {"scale": "yscale", "field": "amount"},
                    "y2": {"scale": "yscale", "value": 0}
                  },
                  "update": {
                    "fill": {"value": "steelblue"}
                  },
                  "hover": {
                    "fill": {"value": "red"}
                  }
                }
              },
              {
                "type": "text",
                "encode": {
                  "enter": {
                    "align": {"value": "center"},
                    "baseline": {"value": "bottom"},
                    "fill": {"value": "#333"}
                  },
                  "update": {
                    "x": {"scale": "xscale", "signal": "tooltip.category", "band": 0.5},
                    "y": {"scale": "yscale", "signal": "tooltip.amount", "offset": -2},
                    "text": {"signal": "tooltip.amount"},
                    "fillOpacity": [
                      {"test": "datum === tooltip", "value": 0},
                      {"value": 1}
                    ]
                  }
                }
              }
            ]
          }
        };
        const chart = new google.visualization.VegaChart(document.getElementById('chart-div'));
        chart.draw(dataTable, options);
      }
    </script>
  </head>
  <body>
    <div id="chart-div" style="width: 700px; height: 250px;"></div>
  </body>
</html>
กำลังโหลด
 ชื่อแพ็กเกจ google.charts.load คือ "vegachart"
google.charts.load("current", {packages: ["vegachart"]});
     ชื่อคลาสของการแสดงภาพคือ google.visualization.VegaChart
var visualization = new google.visualization.VegaChart(container);
รูปแบบข้อมูล
      ข้อมูลอาจส่งผ่านไปยัง VegaChart ในลักษณะที่คล้ายกันมากกับแผนภูมิอื่นๆ ของ Google โดยใช้ DataTable (หรือ DataView)  ความแตกต่างหลักๆ คือ VegaChart จะใช้รหัสของแต่ละคอลัมน์ตามที่คาดไว้สำหรับการแสดงข้อมูลผ่านภาพ Vega ซึ่งคุณระบุไว้ แทนที่จะใช้ลำดับของคอลัมน์ในการกำหนดลักษณะการใช้งาน
      เช่น DataTable ต่อไปนี้สร้างด้วยคอลัมน์ที่มีรหัสสำหรับ 'category' และ 'amount' และมีการใช้รหัสเดียวกันภายในตัวเลือก "vega" เพื่ออ้างอิงคอลัมน์เหล่านี้
    
        const dataTable = new google.visualization.DataTable();
        dataTable.addColumn({type: 'string', 'id': 'category'});
        dataTable.addColumn({type: 'number', 'id': 'amount'});
        dataTable.addRows([
          ['A', 28],
          ['B', 55],
          ['C', 43],
        ]);
        const options = {
          'vega': {
            ...
            // Here we create the Vega data object named 'datatable',
            // which will be passed in via the draw() call with a DataTable.
            'data': {'name': 'datatable'},
            'scales': [
              {
                'name': 'yscale',
                // Here is an example of how to use the 'amount' field from 'datatable'.
                'domain': {'data': 'datatable', 'field': 'amount'},
              }
            ]
          }
        };
        const chart = new google.visualization.VegaChart(
          document.getElementById('chart-div'));
        chart.draw(dataTable, options);
    
  
        // A DataTable is required, but it may be empty.
        const dataTable = new google.visualization.DataTable();
        const options = {
          'vega': {
            // Here the data is specified inline in the Vega specification.
            "data": [
              {
               "name": "table",
                "values": [
                  {"category": "A", "amount": 28},
                  {"category": "B", "amount": 55},
                  {"category": "C", "amount": 43},
                ]
              }
            ],
            'scales': [
              {
                'name': 'yscale',
                // Here is how Vega normally uses the 'amount' field from 'table'.
                "domain": {"data": "table", "field": "category"},
              }
            ]
          }
        };
        const chart = new google.visualization.VegaChart(
          document.getElementById('chart-div'));
        chart.draw(dataTable, options);
    
  อย่างไรก็ตาม วิธีนี้จะส่งผ่าน DataTable ดังกล่าวไปยัง VegaChart ได้เพียง 1 รายการเท่านั้น ในขณะที่แผนภูมิ Vega บางรายการต้องใช้ตารางข้อมูลมากกว่า 1 ตาราง เราจะแก้ไขข้อจำกัดนี้ในการเปิดตัว Google แผนภูมิในอนาคต
      ในระหว่างนี้ คุณจะระบุข้อมูลเพิ่มเติมที่ต้องการใช้ในตัวเลือก 'vega' 'data' ได้ ไม่ว่าจะด้วยการใส่ข้อมูลในบรรทัด หรือการโหลดข้อมูลจาก URL
      ดูตัวอย่างของทั้ง 2 รูปแบบได้ที่ด้านล่าง
    
ตัวเลือกการกำหนดค่า
| ชื่อ | |
|---|---|
| chartArea | 
     
      ออบเจ็กต์ที่มีสมาชิกเพื่อกำหนดค่าตำแหน่งและขนาดของพื้นที่แผนภูมิ (บริเวณที่มีการวาดแผนภูมิ ยกเว้นแกนและคำอธิบาย) ระบบรองรับ 2 รูปแบบคือ ตัวเลขหรือตัวเลขตามด้วย % ตัวเลขง่ายๆ คือค่าที่มีหน่วยเป็นพิกเซล ตัวเลขตามด้วย % คือเปอร์เซ็นต์ เช่น  ประเภท: ออบเจ็กต์ 
    ค่าเริ่มต้น: null 
   | 
| chartArea.bottom | 
     ระยะห่างในการวาดแผนภูมิจากเส้นขอบด้านล่าง ประเภท: ตัวเลขหรือสตริง 
    ค่าเริ่มต้น: อัตโนมัติ 
   | 
| chartArea.left | 
     ระยะห่างในการวาดแผนภูมิจากเส้นขอบด้านซ้าย ประเภท: ตัวเลขหรือสตริง 
    ค่าเริ่มต้น: อัตโนมัติ 
   | 
| chartArea.right | 
     ระยะห่างในการวาดแผนภูมิจากเส้นขอบด้านขวา ประเภท: ตัวเลขหรือสตริง 
    ค่าเริ่มต้น: อัตโนมัติ 
   | 
| chartArea.top | 
     ระยะห่างในการวาดแผนภูมิจากเส้นขอบด้านบน ประเภท: ตัวเลขหรือสตริง 
    ค่าเริ่มต้น: อัตโนมัติ 
   | 
| chartArea.width | 
     ความกว้างพื้นที่แผนภูมิ ประเภท: ตัวเลขหรือสตริง 
    ค่าเริ่มต้น: อัตโนมัติ 
   | 
| chartArea.height | 
     ความสูงพื้นที่แผนภูมิ ประเภท: ตัวเลขหรือสตริง 
    ค่าเริ่มต้น: อัตโนมัติ 
   | 
| ส่วนสูง | 
     ความสูงของแผนภูมิเป็นพิกเซล ประเภท: ตัวเลข 
    ค่าเริ่มต้น: ความสูงขององค์ประกอบที่มีอยู่ 
   | 
| ความกว้าง | 
     ความกว้างของแผนภูมิเป็นพิกเซล ประเภท: ตัวเลข 
    ค่าเริ่มต้น: ความกว้างขององค์ประกอบที่มีอยู่ 
   | 
วิธีการ
| วิธีการ | |
|---|---|
draw(data, options) | 
  
     
      วาดแผนภูมิ แผนภูมิยอมรับการเรียกใช้เมธอดเพิ่มเติมหลังจากที่เหตุการณ์  ประเภทการคืนสินค้า: ไม่มี 
   | 
getAction(actionID) | 
  
     แสดงออบเจ็กต์การดำเนินการของเคล็ดลับเครื่องมือที่มี  ประเภทผลลัพธ์: ออบเจ็กต์ 
   | 
getBoundingBox(id) | 
  
     
      แสดงผลออบเจ็กต์ที่มีด้านซ้าย ด้านบน ความกว้าง และความสูงขององค์ประกอบแผนภูมิ
       
 ค่าจะสัมพันธ์กับคอนเทนเนอร์ของแผนภูมิ เรียกใช้หลังจากที่มีการวาดแผนภูมิ ประเภทผลลัพธ์: ออบเจ็กต์ 
   | 
getChartAreaBoundingBox() | 
  
     แสดงผลออบเจ็กต์ที่มีข้อมูลด้านซ้าย ด้านบน ความกว้าง และความสูงของเนื้อหาแผนภูมิ (นั่นคือ ไม่รวมป้ายกำกับและคำอธิบาย) ดังนี้ 
 ค่าจะสัมพันธ์กับคอนเทนเนอร์ของแผนภูมิ เรียกใช้หลังจากที่มีการวาดแผนภูมิ ประเภทผลลัพธ์: ออบเจ็กต์ 
   | 
getChartLayoutInterface() | 
  
     แสดงผลออบเจ็กต์ที่มีข้อมูลเกี่ยวกับตำแหน่งบนหน้าจอของแผนภูมิและองค์ประกอบ เมธอดต่อไปนี้สามารถเรียกใช้ในออบเจ็กต์ที่แสดงผล 
 เรียกใช้หลังจากที่มีการวาดแผนภูมิ ประเภทผลลัพธ์: ออบเจ็กต์ 
   | 
getHAxisValue(xPosition, optional_axis_index) | 
  
     
      แสดงผลค่าข้อมูลแนวนอนที่  ตัวอย่าง:  เรียกใช้หลังจากที่มีการวาดแผนภูมิ ประเภทการคืนสินค้า: ตัวเลข 
   | 
getImageURI() | 
  
     แสดงผลแผนภูมิที่เรียงลำดับเป็น URI รูปภาพ เรียกใช้หลังจากที่มีการวาดแผนภูมิ ประเภทการแสดงผล: สตริง 
   | 
getSelection() | 
  
     
      แสดงผลอาร์เรย์ของเอนทิตีแผนภูมิที่เลือก
    
    
    
      สำหรับแผนภูมินี้ คุณสามารถเลือกเอนทิตีได้เพียง 1 รายการในช่วงเวลาหนึ่งๆ
    
      
         ประเภทผลลัพธ์: อาร์เรย์ขององค์ประกอบการเลือก 
   | 
getVAxisValue(yPosition, optional_axis_index) | 
  
     
      แสดงผลค่าข้อมูลแนวตั้งที่  ตัวอย่าง:  เรียกใช้หลังจากที่มีการวาดแผนภูมิ ประเภทการคืนสินค้า: ตัวเลข 
   | 
getXLocation(dataValue, optional_axis_index) | 
  
     
      แสดงผลพิกัด x ของพิกเซลของ  ตัวอย่าง:  เรียกใช้หลังจากที่มีการวาดแผนภูมิ ประเภทการคืนสินค้า: ตัวเลข 
   | 
getYLocation(dataValue, optional_axis_index) | 
  
     
      แสดงผลพิกัด y ของพิกเซลของ  ตัวอย่าง:  เรียกใช้หลังจากที่มีการวาดแผนภูมิ ประเภทการคืนสินค้า: ตัวเลข 
   | 
removeAction(actionID) | 
  
     นำการดำเนินการเคล็ดลับเครื่องมือที่มี  ประเภทการคืนสินค้า:  
  none | 
setAction(action) | 
  
     ตั้งค่าการดำเนินการเคล็ดลับเครื่องมือที่จะทำงานเมื่อผู้ใช้คลิกที่ข้อความการดำเนินการ 
      เมธอด  
      คุณควรตั้งค่าการดำเนินการเคล็ดลับเครื่องมือทั้งหมดก่อนที่จะเรียกใช้เมธอด  ประเภทการคืนสินค้า:  
  none | 
setSelection() | 
  
     
      เลือกเอนทิตีแผนภูมิที่ระบุ ยกเลิกรายการที่เลือกก่อนหน้า
    
    
    
      สำหรับแผนภูมินี้ คุณสามารถเลือกเอนทิตีได้ครั้งละ 1 รายการเท่านั้น
    
      
         ประเภทการคืนสินค้า: ไม่มี 
   | 
clearChart() | 
  
     ล้างแผนภูมิ และปล่อยทรัพยากรที่จัดสรรทั้งหมด ประเภทการคืนสินค้า: ไม่มี 
   | 
กิจกรรม
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้เหตุการณ์เหล่านี้ได้ที่การโต้ตอบพื้นฐาน การจัดการเหตุการณ์ และเหตุการณ์การเริ่มทำงาน
| ชื่อ | |
|---|---|
animationfinish | 
  
     เริ่มทำงานเมื่อภาพเคลื่อนไหวการเปลี่ยนเสร็จสมบูรณ์ พร็อพเพอร์ตี้: ไม่มี 
   | 
click | 
  
     เริ่มทำงานเมื่อผู้ใช้คลิกภายในแผนภูมิ ใช้เพื่อระบุว่ามีการคลิกชื่อ องค์ประกอบข้อมูล รายการคำอธิบาย แกน เส้นตาราง หรือป้ายกำกับเมื่อใด พร็อพเพอร์ตี้: targetID 
   | 
error | 
  
     เริ่มทำงานเมื่อเกิดข้อผิดพลาดขณะพยายามแสดงผลแผนภูมิ พร็อพเพอร์ตี้: รหัส ข้อความ 
   | 
legendpagination | 
  
     เริ่มทำงานเมื่อผู้ใช้คลิกลูกศรใส่เลขหน้าคำอธิบาย ส่งกลับดัชนีหน้าที่มีฐาน 0 ในคำอธิบายปัจจุบันและจำนวนหน้าทั้งหมด พร็อพเพอร์ตี้:currentPageIndex, totalPages 
   | 
onmouseover | 
  
     เริ่มทำงานเมื่อผู้ใช้วางเมาส์เหนือเอนทิตีที่มีภาพ ส่งกลับดัชนีแถวและคอลัมน์ขององค์ประกอบตารางข้อมูลที่เกี่ยวข้อง พร็อพเพอร์ตี้: แถว คอลัมน์ 
   | 
onmouseout | 
  
     เริ่มทำงานเมื่อผู้ใช้เลื่อนเมาส์ออกห่างจากองค์ประกอบภาพ ส่งกลับดัชนีแถวและคอลัมน์ขององค์ประกอบตารางข้อมูลที่เกี่ยวข้อง พร็อพเพอร์ตี้: แถว คอลัมน์ 
   | 
ready | 
  
     
      แผนภูมิพร้อมสำหรับการเรียกใช้เมธอดภายนอกแล้ว หากต้องการโต้ตอบกับแผนภูมิและวิธีเรียกใช้หลังจากที่วาดแล้ว คุณควรตั้งค่า Listener สำหรับเหตุการณ์นี้ก่อนเรียกใช้เมธอด  พร็อพเพอร์ตี้: ไม่มี 
   | 
select | 
  
     
      เริ่มทำงานเมื่อผู้ใช้คลิกเอนทิตีภาพ หากต้องการดูสิ่งที่เลือก โปรดโทรหา
       พร็อพเพอร์ตี้: ไม่มี 
   | 
นโยบายข้อมูล
โค้ดและข้อมูลทั้งหมดจะได้รับการประมวลผลและแสดงผลในเบราว์เซอร์ โดยจะไม่มีการส่งข้อมูลไปยังเซิร์ฟเวอร์ใดๆ