Genel bakış
VegaChart, etkileşimli görselleştirme tasarımlarını oluşturmak, kaydetmek ve paylaşmak için kullanılan bildirimli bir dil olan Vega Görselleştirme Dil Bilgisi kullanılarak oluşturulabilecek birçok 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 tanımlayabilir ve Tuval veya SVG kullanarak web tabanlı görünümler oluşturabilirsiniz.
VegaChart çizerken, grafiğin Vega görselleştirme dil bilgisinde nasıl oluşturulacağına ilişkin bir spesifikasyon eklemeniz gerekir. Bu tür spesifikasyonların birkaç örneğini aşağıda bulabilirsiniz. Daha fazla örneği VegaChart Örnekleri sayfasında bulabilirsiniz.
Not: Google Listeler VegaChart, bir Vega JSON Spesifikasyonu ile belirleyebileceğiniz herhangi bir Vega grafiğini çizebilir (Örnek Galeri'de her şey dahil). Vega API'ye çağrı gerektiren ek özellikler henüz kullanıma sunulmamıştır.
Basit bir örnek olan çubuk grafik
Aşağıda, çubuk grafik çizen VegaChart basit bir örneği verilmiştir. (Orijinal örneği, ayrıntılı eğitimi ve vega grafik düzenleyicideki çubuk grafiği inceleyin.)
Bu, Google Grafikler'de çubuk grafik oluşturmanın bir başka yoludur. Diğer Bar ve Sütun grafiklerinin tüm özelliklerini bu VegaChart'a dayalı yeni bir uygulamaya entegre etmeyi planlıyoruz.
Bu örnekte, "data" seçeneğinin aşağıdakiyle değiştirildiğini unutmayın. Bu seçenek, "table" adlı başka bir veri nesnesi için çizim çağrısı tarafından "data" olarak sağlanan "datatable" öğesini ve Vega spesifikasyonunun geri kalanında "table" kullanılı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
paket 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, diğer Google Listeleri'ne çok benzer bir şekilde VegaChart'a DataTable (veya DataView) kullanılarak iletilebilir. Temel fark, VegaChart sütunların nasıl kullanıldığını belirlemek için sıralarına güvenmek yerine, her bir sütunun kimliğinin, belirlediğiniz belirli Vega görselleştirmesi için beklenen değerle aynı olmasına dayanmasıdır.
Örneğin, aşağıdaki DataTable, 'category'
ve 'amount'
kimliklerinin bulunduğu sütunlarla oluşturulur ve bu sütunlara referans vermek için "vega" seçeneğinde aynı kimlikler kullanılı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 yalnızca bir Veri Tablosu iletilebilir ancak bazı Vega grafiklerinde birden fazla veri tablosu gerekir. Bu sınırlamayı, Google Grafikler'in gelecekteki bir sürümünde ele alacağız.
Bu arada, 'vega'
'data'
seçeneğinde kullanmanız gereken ek verileri satır içi yaparak veya bir URL'den yükleyerek belirtebilirsiniz.
Aşağıda her ikisine de dair örnekleri bulabilirsiniz.
Yapılandırma Seçenekleri
Ad | |
---|---|
grafikAlanı |
Grafik alanının yerleşimini ve boyutunu yapılandırmak için üyeleri olan bir nesne (eksen ve açıklamalar hariç, grafiğin kendisinin çizildiği yer). İki biçim desteklenir: Sayı veya sayı ve ardından %. Örnek: Tür: nesne
Varsayılan: null
|
grafikAlanı.alt |
Grafiğin alt kenarlıktan ne kadar uzakta çizileceği. Tür: sayı veya dize
Varsayılan: otomatik
|
grafikAlanı.sol |
Grafiğin sol kenarlıktan ne kadar uzağa çizileceği. Tür: sayı veya dize
Varsayılan: otomatik
|
grafikAlanı.sağ |
Grafiğin sağ kenarlıktan ne kadar uzağa çizileceği. Tür: sayı veya dize
Varsayılan: otomatik
|
grafikAlanı.top |
Grafiğin üst kenarlıktan ne kadar uzağa çizileceği. Tür: sayı veya dize
Varsayılan: otomatik
|
grafikAlanı.genişliği |
Grafik alanı genişliği. Tür: sayı veya dize
Varsayılan: otomatik
|
grafikAlanı.yükseklik |
Grafik alanı yüksekliği. Tür: sayı veya dize
Varsayılan: otomatik
|
yükseklik |
Grafiğin piksel cinsinden yüksekliği. Tür: sayı
Varsayılan: kapsayıcı öğenin yüksekliği
|
genişlik |
Grafiğin piksel cinsinden genişliği. Tür: sayı
Varsayılan: kapsayıcı öğenin genişliği
|
Yöntemler
Yöntem | |
---|---|
draw(data, options) |
Grafiği çizer. Grafik, yalnızca Dönüş Türü: yok
|
getAction(actionID) |
İstenen Dönüş Türü: nesne
|
getBoundingBox(id) |
Değerler, grafiğin kapsayıcısıyla ilgilidir. Bunu, grafik çizildikten sonra çağırın. Dönüş Türü: nesne
|
getChartAreaBoundingBox() |
Grafik içeriğinin sol, üst, genişlik ve yüksekliğini içeren bir nesne döndürür (yani etiketler ve açıklama hariç):
Değerler, grafiğin kapsayıcısıyla ilgilidir. Bunu, grafik çizildikten sonra çağırın. Dönüş Türü: nesne
|
getChartLayoutInterface() |
Grafiğin ve yerleşimin öğelerinin ekran yerleşimi hakkında bilgi içeren bir nesne döndürür. Döndürülen nesnede aşağıdaki yöntemler çağrılabilir:
Bunu, grafik çizildikten sonra çağırın. Dönüş Türü: nesne
|
getHAxisValue(xPosition, optional_axis_index) |
Örnek: Bunu, grafik çizildikten sonra çağırın. İade Türü: numara
|
getImageURI() |
Grafiği resim URI'si olarak serileştirilmiş olarak döndürür. Bunu, grafik çizildikten sonra çağırın. PNG Grafiklerini Yazdırma konusuna bakın. Dönüş Türü: dize
|
getSelection() |
Seçilen grafik varlıklarından oluşan bir diziyi döndürür.
Bu grafik için herhangi bir zamanda yalnızca bir varlık seçilebilir.
Dönüş Türü: Seçim öğeleri dizisi
|
getVAxisValue(yPosition, optional_axis_index) |
Örnek: Bunu, grafik çizildikten sonra çağırın. İade Türü: numara
|
getXLocation(dataValue, optional_axis_index) |
Grafik kapsayıcısının sol kenarına göre Örnek: Bunu, grafik çizildikten sonra çağırın. İade Türü: numara
|
getYLocation(dataValue, optional_axis_index) |
Grafik kapsayıcısının üst kenarına göre Örnek: Bunu, grafik çizildikten sonra ç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 belirler.
İpucu işlemlerinin tümü, grafiğin İade Türü:
none |
setSelection() |
Belirtilen grafik öğelerini seçer. Önceki seçimleri iptal eder.
Bu grafik için tek seferde yalnızca bir öğe seçilebilir.
Dönüş Türü: yok
|
clearChart() |
Grafiği temizler ve ayrılan tüm kaynaklarını serbest bırakır. Dönüş Türü: yok
|
Etkinlikler
Bu etkinliklerin nasıl kullanılacağı hakkında daha fazla bilgi için Temel Etkileşim, Etkinlikleri Kullanma ve Etkinleştirme Etkinlikleri başlıklı makalelere bakın.
Ad | |
---|---|
animationfinish |
Geçiş animasyonu tamamlandığında tetiklenir. Özellikler: yok
|
click |
Kullanıcı grafiğin içini tıkladığında tetiklenir. Başlık, veri öğeleri, gösterge girişleri, eksenler, kılavuz çizgileri veya etiketlerin ne zaman tıklandığını belirlemek 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ı, sayfalara ayırma göstergelerini tıkladığında tetiklenir. Mevcut sıfır tabanlı sayfa dizinini ve toplam sayfa sayısını geri verir. Özellikler: currentPageIndex, totalPages
|
onmouseover |
Kullanıcı görsel bir varlığın üzerine geldiğinde tetiklenir. İlgili veri tablosu öğesinin satır ve sütun dizinlerini geri verir. Özellikler: satır, sütun
|
onmouseout |
Kullanıcı görsel varlıktan fareyi 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. Grafik ve çizim yöntemlerinden sonra etkileşimde bulunmak isterseniz Özellikler: yok
|
select |
Kullanıcı bir görsel öğeyi tıkladığında tetiklenir. Nelerin seçildiğini öğrenmek için Özellikler: yok
|
Veri Politikası
Tüm kod ve veriler tarayıcıda işlenir ve oluşturulur. Hiçbir sunucuya veri gönderilmez.