Genel bakış
VegaChart, etkileşimli görselleştirme tasarımlarını oluşturmak, kaydetmek ve paylaşmak için bildirim temelli bir dil olan Vega Görselleştirme Dil Bilgisi ile oluşturulabilecek birçok olası görselleştirmeden biridir. Vega ile bir görselleştirmenin görsel görünümünü ve etkileşimli davranışını JSON biçiminde açıklayabilir, Tuval veya SVG kullanarak web tabanlı görünümler oluşturabilirsiniz.
Bir VegaChart çizerken, seçeneklere Vega görselleştirme dilbilgisinde grafiğin nasıl oluşturulacağıyla ilgili bir spesifikasyon eklemeniz gerekir. Bu tür spesifikasyonların birkaç örneğini aşağıda bulabilirsiniz. Ayrıca, VegaChart Örnekleri sayfasında daha birçok örnek bulabilirsiniz.
Not: Google Charts VegaChart, Vega JSON Spesifikasyonu ile belirtebileceğiniz herhangi bir Vega grafiğini ( Örnek Galeri'deki her şey dahil) çizebilse de Vega API'ye çağrı yapılmasını gerektiren ek özellikler henüz kullanıma sunulmamıştır.
Basit Bir Örnek: Çubuk Grafik
Burada, çubuk grafik çizen basit bir VegaChart örneği verilmiştir. (Orijinal örneği, ayrıntılı bir eğitimi ve Vega grafik düzenleyicideki çubuk grafiği inceleyin.)
Bu, Google Grafikler'de çubuk grafik oluşturmanın bir başka yolunu temsil etmekle birlikte, diğer Çubuk ve Sütun grafiklerin tüm özelliklerini bu VegaChart'ı temel alan yeni bir uygulamaya entegre etmeyi planlıyoruz.
Bu örnekte "data" seçeneğinin aşağıdaki öğeyle değiştirildiğini unutmayın. Bu seçenek, "table" adlı başka bir veri nesnesi için "source" olarak çizim çağrısının sağladığı "datatable" özelliğini ve Vega spesifikasyonunun geri kalanında "table" değerini kullanır.
'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>
Yükleniyor
google.charts.load
paketinin adı: "vegachart"
.
google.charts.load("current", {packages: ["vegachart"]});
Görselleştirmenin sınıf adı: google.visualization.VegaChart
.
var visualization = new google.visualization.VegaChart(container);
Veri Biçimi
Veriler bir VegaChart'a, diğer Google Grafiklerine çok benzer bir şekilde, DataTable (veya DataView) kullanılarak iletilebilir. En önemli fark, VegaChart'ın nasıl kullanılacağını belirlemek için sütunların sırasına dayanması yerine, her bir sütunun kimliğinin, belirttiğiniz Vega görselleştirmesi için beklenenle aynı olmasıdır.
Örneğin, aşağıdaki DataTable, 'category'
ve 'amount'
kimliklerine sahip sütunlarla oluşturulmuştur ve bu sütunlara referans vermek için "vega" seçeneğinde aynı kimlikler kullanılmıştır.
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);
Ancak, bu şekilde VegaChart'a bu tür yalnızca bir DataTable iletilebilir. Bazı Vega grafiklerinde ise birden fazla veri tablosu gerekir. Bu sınırlama, Google Charts'ın gelecekteki bir sürümünde ele alınacaktır.
Bu arada, kullanmanız gereken ek verileri 'vega'
'data'
seçeneğinde satır içine alarak veya bir URL'den yükleyerek belirtebilirsiniz.
Bu ikisine ilişkin örnekleri aşağıda bulabilirsiniz.
Yapılandırma Seçenekleri
Ad | |
---|---|
chartArea |
Grafik alanının yerleşimini ve boyutunu yapılandırmak için üyelere sahip bir nesne (eksen ve göstergeler hariç, grafiğin kendisinin çizildiği yer). İki biçim desteklenir: bir sayı veya ardından % gelen sayı. Basit bir sayı, piksel cinsinden bir değerdir, ardından % gelen sayının ardından gelen bir yüzdedir. Örnek: Tür: nesne
Varsayılan: null
|
chartArea.bottom |
Grafiğin alt kenarlıktan ne kadar uzakta çizileceği. Tür: sayı veya dize
Varsayılan: auto
|
chartArea.left |
Grafiğin sol kenarlıktan ne kadar uzağa çizileceği. Tür: sayı veya dize
Varsayılan: auto
|
chartArea.right |
Grafiğin sağ kenarlıktan ne kadar uzağa çizileceği. Tür: sayı veya dize
Varsayılan: auto
|
chartArea.top |
Grafiğin üst kenarlıktan ne kadar uzakta çizileceği. Tür: sayı veya dize
Varsayılan: auto
|
chartArea.width |
Grafik alanı genişliği. Tür: sayı veya dize
Varsayılan: auto
|
chartArea.height |
Grafik alanı yüksekliği. Tür: sayı veya dize
Varsayılan: auto
|
yükseklik |
Grafiğin piksel cinsinden yüksekliği. Tür: numara
Varsayılan: kapsayıcı öğenin yüksekliği
|
genişlik |
Grafiğin piksel cinsinden genişliği. Tür: numara
Varsayılan: kapsayıcı öğenin genişliği
|
Yöntemler
Yöntem | |
---|---|
draw(data, options) |
Grafiği çizer. Grafik, yalnızca Return Type (Dönüş Türü): yok
|
getAction(actionID) |
İstenen Return Type: nesne
|
getBoundingBox(id) |
Değerler, grafiğin kapsayıcısına bağlıdır. Grafik çizildikten sonra bunu çağırın. Return Type: nesne
|
getChartAreaBoundingBox() |
Grafik içeriğinin sol, üst, genişlik ve yüksekliğini içeren nesneyi döndürür (ör. etiketler ve açıklamalar hariç):
Değerler, grafiğin kapsayıcısına bağlıdır. Grafik çizildikten sonra bunu çağırın. Return Type: nesne
|
getChartLayoutInterface() |
Grafiğin ve öğelerinin ekrandaki yerleşimiyle ilgili bilgileri içeren bir nesneyi döndürür. Döndürülen nesnede aşağıdaki yöntemler çağrılabilir:
Grafik çizildikten sonra bunu çağırın. Return Type: nesne
|
getHAxisValue(xPosition, optional_axis_index) |
Grafik kapsayıcısının sol kenarından piksel uzaklığı olan Örnek: Grafik çizildikten sonra bunu çağırın. İade Türü: numara
|
getImageURI() |
Grafiği resim URI'si olarak serileştirilmiş şekilde döndürür. Grafik çizildikten sonra bunu çağırın. Bkz. PNG Grafiklerini Yazdırma. Return Type: dize
|
getSelection() |
Seçilen grafik varlıklarından oluşan bir dizi döndürür.
Bu grafik için aynı anda yalnızca bir öğe seçilebilir.
Dönüş Türü: Seçim öğeleri dizisi
|
getVAxisValue(yPosition, optional_axis_index) |
Örnek: Grafik çizildikten sonra bunu çağırın. İade Türü: numara
|
getXLocation(dataValue, optional_axis_index) |
Grafik kapsayıcısının sol kenarına göre Örnek: Grafik çizildikten sonra bunu çağırın. İade Türü: numara
|
getYLocation(dataValue, optional_axis_index) |
Grafik kapsayıcısının üst kenarına göre Örnek: Grafik çizildikten sonra bunu çağırın. İade Türü: numara
|
removeAction(actionID) |
İstenen İade Türü:
none |
setAction(action) |
Kullanıcı işlem metnini tıkladığında yürütülecek bir ipucu işlemi ayarlar.
Tüm ipucu işlemleri, grafiğin İade Türü:
none |
setSelection() |
Belirtilen grafik varlıklarını seçer. Önceki seçimleri iptal eder.
Bu grafik için aynı anda yalnızca bir öğe seçilebilir.
Return Type (Dönüş Türü): yok
|
clearChart() |
Grafiği temizler ve ayrılan tüm kaynaklarını serbest bırakır. Return Type (Dönüş Türü): yok
|
Etkinlikler
Bu etkinliklerin nasıl kullanılacağı hakkında daha fazla bilgi için Temel Etkileşim, Etkinlikleri Yönetme ve Etkinleşme Etkinliklerini inceleyin.
Ad | |
---|---|
animationfinish |
Geçiş animasyonu tamamlandığında tetiklenir. Özellikler: yok
|
click |
Kullanıcı grafiğin içini tıkladığında tetiklenir. Başlığın, veri öğelerinin, gösterge girişlerinin, eksenlerin, kılavuz çizgilerinin veya etiketlerin ne zaman tıklandığını tanımlamak için kullanılabilir. Özellikler: targetID
|
error |
Grafik oluşturulmaya çalışılırken bir hata oluştuğunda tetiklenir. Özellikler: kimlik, mesaj
|
legendpagination |
Kullanıcı, sayfa açıklaması oklarını tıkladığında tetiklenir. Açıklamaların sıfır tabanlı mevcut sayfa dizinini ve toplam sayfa sayısını geri verir. Özellikler: currentPageIndex, totalPages
|
onmouseover |
Kullanıcı fareyle bir görsel öğenin üzerine geldiğinde tetiklenir. İlgili veri tablosu öğesinin satır ve sütun dizinlerini geri verir. Özellikler: satır, sütun
|
onmouseout |
Kullanıcı faresini görsel bir öğeden uzaklaştırdığında tetiklenir. İlgili veri tablosu öğesinin satır ve sütun dizinlerini geri verir. Özellikler: satır, sütun
|
ready |
Grafik, harici yöntem çağrıları için hazır. Grafikle etkileşim kurmak ve
çizdikten sonra yöntemleri çağırmak isterseniz Özellikler: yok
|
select |
Kullanıcı bir görsel öğeyi tıkladığında tetiklenir. Neyin seçildiğini öğrenmek için Özellikler: yok
|
Veri Politikası
Tüm kod ve veriler tarayıcıda işlenip oluşturulur. Herhangi bir sunucuya veri gönderilmez.