Role w kolumnach

Na tej stronie omawiamy koncepcję i przydatność ról w tabelach danych wykresu.

  1. Czym są role?
  2. Jakie role są dostępne?
  3. Hierarchia ról i powiązanie
  4. Przypisywanie roli

Czym są role?

Obiekty Google DataTable i DataView obsługują teraz bezpośrednio role kolumn. Rola w kolumnie opisuje jej cel. Na przykład kolumna może zawierać dane opisujące tekst podpowiedzi, adnotacje dotyczące punktów danych lub wskaźniki niepewności. Większość ról w kolumnie odnosi się do kolumny „dane” przed nią, niezależnie od tego, czy znajduje się bezpośrednio przed nią, czy przed pierwszą grupą kolumn z rolą. Możesz np. umieścić po 2 kolumnach kolumnę z danymi dla danych i 1 adnotację. Jednak w kolumnie „domena” dopuszczamy też role z adnotacjami i adnotacjami.

Uwaga: jeśli chcesz kontrolować zawartość etykietek wyświetlanych po najechaniu kursorem myszy na wykres, przeczytaj wskazówki.

Początkowo dla kolumny były dostępne tylko 2 role: „domain”, która określa wartość głównej osi, oraz „data”, która określa wysokość słupka, szerokość wycinka koła itp. Te role zostały przypisane domyślnie na podstawie kolejności i typu kolumn w tabeli. Dzięki możliwości wyraźnego przypisywania ról w kolumnach możesz teraz dodawać do wykresu opcjonalne kolumny z nowymi, ciekawymi funkcjami, takimi jak dowolne etykiety adnotacji, tekst po najechaniu kursorem czy paski niepewności.

Jeśli nie przypiszesz do roli roli, zostanie ona określona w kolejności w tabeli zgodnie ze specyfikacją formatu danych na wykresie. Na tej stronie znajdziesz informacje o rolach, które możesz wyraźnie przypisać, oraz o tym, jak je przypisać.

Oto porównanie, jakie możesz uzyskać na wykresie liniowym, używając tylko domyślnych, wywnioskowanych ról w porównaniu z dodatkowymi rolami wyraźnie przypisanymi.

Format tabeli danych wykresu liniowego:

  Kolumna 0 Kolumna 1 Kolumna N
Cel Wartości wiersza 1 Wartości wiersza N
Typ danych liczba liczba
Rola domena dane dane
Opcjonalne role
  • adnotacja
  • adnotacjęText
  • adnotacja
  • adnotacjęText
  • pewność
  • wyróżnienie
  • interval
  • zakres
  • styl
  • etykietka
  • adnotacja
  • adnotacjęText
  • pewność
  • wyróżnienie
  • interval
  • zakres
  • styl
  • etykietka

 

Wykres bez ról w kolumnie Wykres z jednoznacznymi rolami kolumn

Ten wykres nie stosuje wyraźnie określonych ról, możesz więc użyć tylko układu podstawowego danych i kolumn widocznych powyżej.

Tabela danych:

var data = new google.visualization.DataTable();
data.addColumn('string', 'Month'); // Implicit domain label col.
data.addColumn('number', 'Sales'); // Implicit series 1 data col.
data.addRows([
  ['April',1000],
  ['May',  1170],
  ['June',  660],
  ['July', 1030]
]);

Ten wykres wyraźnie przypisuje role, więc można dodać opcjonalne kolumny. Ten wykres zawiera kolumny z rolami adnotacji, adnotacji, interwału i pewności.

  • Kolumny adnotacji określają statyczne etykiety na wykresie. Tutaj znajdują się adnotacje z kolumnami „A”, „B” i „C”.
  • W kolumnach adnotationText określa się tekst widoczny po najechaniu kursorem na adnotację (nie na punkcie danych).
  • Interwał wskazuje górne i dolne punkty słupków słupków na wykresie. Na wykresie znajdują się 3 paski słupkowe.
  • kolumn pewności wskazują, czy dane w tym miejscu są pewne. Ostatni punkt danych jest niepewny, dlatego linia, która do niej prowadzi, jest przerywana.

Tabela danych:

var data = new google.visualization.DataTable();
data.addColumn('string', 'Month'); // Implicit domain label col.
data.addColumn('number', 'Sales'); // Implicit series 1 data col.
data.addColumn({type:'number', role:'interval'});  // interval role col.
data.addColumn({type:'number', role:'interval'});  // interval role col.
data.addColumn({type:'string', role:'annotation'}); // annotation role col.
data.addColumn({type:'string', role:'annotationText'}); // annotationText col.
data.addColumn({type:'boolean',role:'certainty'}); // certainty col.
data.addRows([
    ['April',1000,  900, 1100,  'A','Stolen data', true],
    ['May',  1170, 1000, 1200,  'B','Coffee spill', true],
    ['June',  660,  550,  800,  'C','Wumpus attack', true],
    ['July', 1030, null, null, null, null, false]
]);

Jakie role są dostępne?

W tabeli poniżej znajdziesz wszystkie role oferowane przez Wykresy Google. Nie wszystkie role obsługują wszystkie typy wykresów. Dokumentacja poszczególnych wykresów opisuje, które role są dostępne i gdzie się znajdują. Role są inaczej renderowane w przypadku różnych typów wykresów.

Rola Opis Przykład
adnotacja

Tekst do wyświetlenia na wykresie w pobliżu powiązanego punktu danych. Tekst jest wyświetlany bez interakcji użytkownika. Adnotacje i tekst adnotacji można przypisać zarówno do punktów danych, jak i kategorii (etykiety osi).

Dostępne są 2 style adnotacji: punkt (domyślny), który rysuje tekst adnotacji w pobliżu określonego punktu, oraz linia, która rysuje tekst adnotacji na linii, która przecina obszar wykresu. Możesz określić styl linii, ustawiając tę opcję wykresu: annotations: {'column_id': {style: 'line'}}

Typ danych: ciąg znaków

Wartość domyślna: pusty ciąg

Dane:

label: 'Rok', 'Sprzedaż', null, null, 'Wydatki

„A” i „B” na tym wykresie to adnotacje. Najedź kursorem na adnotację, aby wyświetlić jej tekst. Pamiętaj, że musisz umieścić kursor myszy na adnotacji, a nie na punkcie danych, do którego jest stosowana, aby wyświetlić wartość adnotacjiText.

Zarówno dla adnotacji, jak i adnotacji, używane są puste wartości. Jeśli jednak masz wartość adnotacjiText, musisz mieć powiązaną wartość adnotacji.

adnotationText

Rozszerzony tekst wyświetlany, gdy użytkownik najedzie na powiązaną adnotację. Adnotacje i tekst adnotacji można przypisać zarówno do punktów danych, jak i kategorii (etykiety osi). Jeśli masz kolumnę adnotacjiText, musisz też mieć kolumnę adnotacji. Tekst etykietki jest wyświetlany po najechaniu kursorem na powiązany punkt danych na wykresie.

Typ danych: ciąg znaków

Wartość domyślna: pusty ciąg

niepewność

Wskazuje, czy punkt danych jest pewny. Sposób wyświetlania zależy od typu wykresu – może być on oznaczony linią przerywaną lub wypełnieniem w paski.

W przypadku wykresów liniowych i warstwowych podział między 2 punktami danych jest możliwy tylko wtedy, gdy oba punkty są pewne.

Typ danych: wartość logiczna, gdzie „prawda” to pewny, „fałsz”.

Wartość domyślna: true

wyróżnienie

Podkreśla określone punkty danych wykresu. Wyświetlane jako gruba linia lub duży punkt.

W przypadku wykresów liniowych i warstwowych podział między dwoma punktami danych jest podkreślany tylko wtedy, gdy zaznaczono oba punkty danych.

Typ danych: wartość logiczna

Wartość domyślna: false

Dane:

label: 'Year',  'Sales',     null, 'Expenses',     null
 role: domain,   data,   emphasis,     data,   emphasis
       '2004',   1000,       true,      400,      false
       '2005',   1170,       true,      460,       true
       '2006',    660,      false,     1120,       true
       '2007',   1030,      false,      540,       true

Na tym wykresie seria „Sprzedaż” ma jeden wyróżniony segment, zaznaczony w kolumnie 3, w wierszach 1 i 2. Seria „Wydatki” ma 2 podkreślone segmenty, które zostały oznaczone piątą kolumną w wierszach 2, 3 i 4. Zwróć uwagę na to, że wyróżnienie wymaga wzmocnienia obu punktów ograniczających.

interwał

Wskazuje potencjalny zakres danych dla określonego punktu. Przedziały są zwykle wyświetlane jako wskaźniki zakresu stylu paska adresu. Kolumny interwału to kolumny numeryczne. Dodaj je w parach, co oznacza niską i wysoką wartość słupka. Wartości interwałów należy dodawać rosnąco – od lewej do prawej.

Typ danych: liczba

Wartość domyślna: bez interwału

Dane:

label: 'Day',  'Stock value',   null,     null
 role: domain,     data,    interval, interval
        'Mon',       38,          20,       45
        'Tue',       55,          31,       66
        'Wed',       77,          50,       80
      'Thurs',       66,          50,       77

Na tym wykresie wartości odstępów definiują pasek I znajdujący się wokół punktów. Wartości zwiększają się od lewej do prawej. Najwyższe i najniższe przedziały wokół punktu oznaczają górną i dolną krawędź paska.

Uwaga: szczegółowe informacje na temat interwałów znajdziesz w sekcji Interwały.

zakres

Wskazuje, czy punkt znajduje się w zakresie, czy poza. Jeśli punkt jest poza zakresem, jest podkreślany wizualnie.

W przypadku wykresów liniowych i warstwowych segment między 2 punktami danych jest w zakresie, jeśli w zakresie znajduje się jeden punkt końcowy.

Typ danych: logiczne, gdzie „prawda” oznacza zakres.

Wartość domyślna: true

Dane:

label: 'Year',   'Sales',    null,    'Expenses',      null
 role: domain,     data,    scope,        data,       scope
        '2004',    1000,    false,         400,        true
        '2005',    1170,    false,         460,       false
        '2006',     660,     true,        1120,       false
        '2007',    1030,     true,         540,       false

Pierwsza kolumna zakresu dotyczy kolumny danych „Sprzedaż” po lewej stronie. Pierwszy segment jest renderowany poza zakresem, ponieważ oba punkty graniczne są poza zakresem. Druga kolumna zakresu danych dotyczy kolumny danych „Wydatki” po lewej stronie. Pierwszy fragment jest oznaczony jako ograniczony do zakresu, ponieważ jeden z jego punktów granicznych jest w zakresie. Pozostałe fragmenty linii są poza zakresem, ponieważ wszystkie pozostałe punkty są poza zakresem.

style,

Określają określone właściwości różnych aspektów danych. Wartości te to:

  • color
  • opacity
  • stroke-width
  • stroke-color
  • stroke-opacity
  • fill-color
  • fill-opacity

Typ danych: ciąg znaków, w którym można stosować wiele stylów za pomocą składni 'firstProperty: value; secondProperty: value', lub ustawić określone style dla bar, line, i point, określając typ i umieszczenie parametrów stylu w nawiasach klamrowych (np. bar { //properties go here }).

Wartość domyślna: null

Dane:

label: 'Character', 'Popularity',   'Style',
role:  domain,      data,   style,
'Hulk',             50,    'color: green',
'Captain America',  75,    'color: #0000cf;' +
                           'stroke-color: #cf001d',
'Wolverine',        90,    'opacity: 0.5;' +
                           'stroke-width: 5;' +
                           'stroke-color: #01a0ff;' +
                           'fill-color: #fff600',
'Iron Man',         60,    'color: #db9500;' +
                           'stroke-width: 10;' +
                           'stroke-color: #a30300',
'Spider Man',       100,   'bar {' +
                           'fill-color: #c8001d;' +
                           'stroke-width: 3;' +
                           'stroke-color: #1800c8}'

      

Na tym wykresie styl każdego paska jest określany niezależnie od roli w kolumnie style. Style można określać dla punktów, linii lub słupków (patrz wiersz Spider-mana) lub ogólnie stosować style do wszystkich punktów, linii i słupków (w zależności od typu wykresu).

Uwaga: więcej informacji o dostosowywaniu stylu punktów, linii i pasków znajdziesz w innych miejscach. Zobacz też opcje dotyczące poszczególnych typów wykresów, w których można określić style dla elementów innego typu, takich jak obszary, tekst czy pola.

etykietka

Tekst do wyświetlenia, gdy użytkownik najedzie kursorem na punkt danych powiązany z tym wierszem.

Uwaga: wizualizacja wykresu bąbelkowego nie jest obsługiwana. Nie można dostosować zawartości etykiet HTML wykresu bąbelkowego.

Typ danych: ciąg znaków

Wartość domyślna: wartość punktu danych

Dane:

label: 'Year',   'Sales',    null,   'Expenses',    null
 role: domain,     data,    tooltip,    data,      tooltip
        '2004',    1000, '1M$ sales,     400,    '$0.4M expenses
                           in 2004'                  in 2004'
        '2005',    1170, '1.17M$ sales,  460,    '$0.46M expenses
                            in 2005'                  in 2005'
        '2006',     660, '.66$ sales,   1120,     '$1.12M expenses
                            in 2006'                 in 2006'
        '2007',    1030, '1.03M$ sales,  540,    '$0.54M expenses
                            in 2007'                  in 2007'

Najedź kursorem na punkty danych, aby wyświetlić tekst etykietki. Dane etykietki są przypisywane do wszystkich punktów w obu wierszach (kolumny 3 i 5).

Uwaga: więcej informacji o dostosowywaniu etykiet znajdziesz w artykule Wskazówki.

domena

Nie musisz przypisywać tej roli, chyba że zaprojektujesz wykres wielodomenowy (pokazany tutaj). Podstawowy format tabeli danych umożliwia silnikowi wnioskowania, które kolumny są kolumnami domeny. Musisz jednak pamiętać, które kolumny zawierają kolumny domeny, aby wiedzieć, które inne kolumny można je modyfikować.

Kolumny domeny określają etykiety wzdłuż głównej osi wykresu. Do umieszczenia na kilku skalach tego samego wykresu można użyć wielu kolumn domeny.

Typ danych: zwykle ciąg znaków, ale czasami liczba lub data

Dane:

label: '2009,  '2009,     '2009,   '2008,    '2008    '2008
      Quarter', Sales', Expenses', Quarter', Sales', Expenses'
role:  domain,   data,       data,   domain,   data,     data
      'Q1/09',   1000,        400,  'Q1/08',    800,      300
      'Q2/09',   1170,        460,  'Q2/08',    750,      400
      'Q3/09',    660,       1120,  'Q3/08',    700,      540
      'Q4/09',   1030,        540,  'Q4/08',    820,      620

W tym przykładzie pokazano wykres przedstawiający wiele domen. Pierwsze dwie kolumny danych modyfikują pierwszą domenę („kwartał 2009”), a dwie ostatnie – drugą („kwartał 2008”). Obie domeny są nakładane na te same skale osi.

dane

Nie musisz przypisywać tej roli bezpośrednio. Podstawowy format tabeli danych pozwala wykresowi określić, które kolumny są kolumnami domeny. Musisz jednak pamiętać, które kolumny są kolumnami danych, aby wiedzieć, które inne kolumny można je modyfikować.

Kolumny roli danych określają dane serii do renderowania na wykresie. W przypadku większości wykresów jedna kolumna = jedna seria, ale może się ona różnić w zależności od typu wykresu (na przykład wykresy punktowe wymagają dwóch kolumn danych dla pierwszej serii i kolejnej kolumny dla każdej kolejnej serii. Wykresy świecowe wymagają czterech kolumn danych dla każdej serii).

Typ danych: liczba

 

Hierarchia i powiązanie z rolami

Ten schemat pokazuje, które kolumny ról można zastosować do innych kolumn roli. Wszystkie kolumny z wyjątkiem kolumny domeny są stosowane do najbliższego lewego sąsiada, do którego można stosować te kolumny.

Na przykład kolumna zakres po lewej stronie ma zastosowanie do kolumny adnotacja, a lewa kolumna adnotacja do najbliższej kolumny adnotacja. Po lewej stronie znajduje się kolumna adnotacja.

Przypisywanie roli

Role są przypisywane jako właściwość kolumny w obiekcie DataTable. Kolumnę ról można utworzyć na kilka sposobów, ale najczęstsze są te:

Pierwsze dwie techniki rysują następujący wykres:

Metoda DataTable.addcolumn

Podany niżej przykład tworzy wykres słupkowy z znacznikiem interwału na 3 słupkach. Znaczniki interwałowe są określane w 3. i 4. kolumnie za pomocą metody DataTable.addcolumn().

       var data = new google.visualization.DataTable();
       data.addColumn('string', 'Month'); // Implicit domain column.
       data.addColumn('number', 'Sales'); // Implicit data column.
       data.addColumn({type:'number', role:'interval'});
       data.addColumn({type:'number', role:'interval'});
       data.addColumn('number', 'Expenses');
       data.addRows([
         ['April',1000,  900, 1100,   400],
         ['May',  1170, 1000, 1200,   460],
         ['June',  660,  550,  800,  1120],
         ['July', 1030,    ,     ,    540]
       ]);

       var chart = new google.visualization.BarChart(
                document.getElementById('visualization'));
       chart.draw(data,
          {width: 800, height: 600, title: 'Company Performance'});

Zapis tekstowy (JavaScript)

W dosłowie JSON musisz określić właściwość p kolumny z wartością "role":"role-type". Poniższy przykład pokazuje, jak określić role za pomocą dosłownego kodu JavaScript. Można to zrobić tylko podczas tworzenia tabeli.

{"cols":[
  {"id":"","label":"Month","pattern":"","type":"string"},
  {"id":"","label":"Sales","pattern":"","type":"number"},
  {"id":"","label":"","pattern":"","type":"number","p":{"role":"interval"}},
  {"id":"","label":"","pattern":"","type":"number","p":{"role":"interval"}},
  {"id":"","label":"Expenses","pattern":"","type":"number"}],
"rows":[
  {"c":[
    {"v":"April","f":null},
    {"v":1000,"f":null},
    {"v":900,"f":null},
    {"v":1100,"f":null},
    {"v":400,"f":null}]},
  {"c":[
    {"v":"May","f":null},
    {"v":1170,"f":null},
    {"v":1000,"f":null},
    {"v":1200,"f":null},
    {"v":460,"f":null}]},
  {"c":[{"v":"June","f":null},
    {"v":660,"f":null},
    {"v":550,"f":null},
    {"v":800,"f":null},
    {"v":1120,"f":null}]},
  {"c":[
    {"v":"July","f":null},
    {"v":1030,"f":null},
    {"v":null,"f":null},
    {"v":null,"f":null},
    {"v":540,"f":null}]}],
"p":null
}

Metoda DataView.setKolumny

Podczas tworzenia widoku możesz bezpośrednio ustawić rolę kolumny. Jest to przydatne podczas tworzenia nowej obliczonej kolumny. Więcej informacji: DataView.setColumns().