Studio danych Google umożliwia użytkownikom bezpłatne tworzenie interaktywnych paneli z atrakcyjnymi wizualizacjami danych. Użytkownicy mogą pobierać dane z różnych źródeł i tworzyć raporty w Studiu danych, korzystając z pełnych możliwości edycji i udostępniania. Przykładowy panel Studia danych:
(Kliknij tutaj, aby wyświetlić ten przykładowy raport w Studio danych)
Data Studio udostępnia kilka wbudowanych typów wykresów, w tym wykresy liniowe, słupkowe, kołowe i punktowe. Wizualizacje utworzone przez społeczność umożliwiają tworzenie i używanie w Studiu danych własnych wizualizacji niestandardowych w JavaScript. Wizualizacje utworzone przez społeczność są tworzone przez społeczność programistów Data Studio – każdy programista może je tworzyć. Możesz też udostępniać wizualizacje społeczności innym użytkownikom, aby mogli ich używać z własnymi danymi.
Czego się nauczysz
W tym module dowiesz się:
- Jak działa wizualizacja utworzona przez społeczność w Studiu danych Google
- Jak utworzyć wizualizację utworzoną przez społeczność za pomocą biblioteki pomocniczej ds-component
- Jak zintegrować wizualizację utworzoną przez społeczność z panelem Studia danych
Czego potrzebujesz
Aby ukończyć to ćwiczenie, potrzebujesz:
- dostęp do internetu i przeglądarki;
- konto Google,
- Dostęp do zasobnika Google Cloud Platform
- Znajomość JavaScriptu
Dlaczego wybierasz ten codelab?
Jak zamierzasz korzystać z tego laboratorium/samouczka?
Jak oceniasz korzystanie ze Studia danych?
Które z poniższych stwierdzeń najlepiej opisuje Twoje doświadczenie?
Jakie biblioteki wizualizacji JavaScript Cię interesują?
Aby przesłać informacje z ankiety, przejdź na następną stronę.
Wizualizacje utworzone przez społeczność w Studiu danych umożliwiają tworzenie i używanie niestandardowych wizualizacji w JavaScript, które można zintegrować z panelami.
W tym samouczku utworzysz wizualizację społeczności w postaci wykresu słupkowego, która obsługuje 1 wymiar, 1 rodzaj danych i styl koloru słupków.
Aby utworzyć wizualizację społecznościową, musisz mieć w zasobniku Google Cloud Platform te pliki, które utworzysz w późniejszym kroku:
Nazwa pliku | Typ pliku | Cel |
manifest.json* | JSON | Zawiera metadane wizualizacji i lokalizację innych zasobów. |
myViz.json | JSON | Udostępnia opcje konfiguracji danych i stylu w panelu Usługa. |
myViz.js | JavaScript | Zawiera kod JavaScript wymagany do wyświetlania wizualizacji. |
myViz.css (opcjonalnie) | CSS | Określa styl wizualizacji. |
*Manifest to jedyny plik, który musi mieć określoną nazwę. Pozostałe pliki mogą mieć inne nazwy, o ile ich nazwa lub lokalizacja jest określona w pliku manifestu.
W tej sekcji dodasz do pliku JavaScript kod wymagany do obsługi danych, zmian stylu i renderowania wizualizacji.
Tworzenie źródła wizualizacji
Krok 1. Pobierz plik dscc.min.js z Biblioteki komponentów społeczności Data Studio i skopiuj go do katalogu roboczego.
Krok 2. Skopiuj ten kod do edytora tekstu i zapisz go jako myVizSource.js
w lokalnym katalogu roboczym.
myVizSource.js
function drawViz(data) {
// set margins + canvas size
const margin = { top: 10, bottom: 50, right: 10, left: 10 };
const height = dscc.getHeight() - margin.top - margin.bottom;
const width = dscc.getWidth() - margin.left - margin.right;
// remove the svg if it already exists
if (document.querySelector("svg")) {
let oldSvg = document.querySelector("svg");
oldSvg.parentNode.removeChild(oldSvg);
}
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
svg.setAttribute("height", `${height}px`);
svg.setAttribute("width", `${width}px`);
const rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
rect.setAttribute('width', `${width/2}px`);
rect.setAttribute('height', `${height/2}px`);
rect.style.fill = 'blue';
svg.append(rect);
document.body.appendChild(svg);
}
// subscribe to data and style changes
dscc.subscribeToData(drawViz, { transform: dscc.objectTransform });
Przygotowywanie końcowego pliku JavaScript
Krok 3. Połącz wszystkie wymagane pliki JavaScript w jeden plik, kopiując zawartość biblioteki pomocniczej wizualizacji (dscc.min.js
) i pliku myVizSource.js
do nowego pliku o nazwie myViz.js
. Aby połączyć pliki, uruchom te polecenia. Powtarzaj ten krok za każdym razem, gdy aktualizujesz kod wizualizacji.
Skrypt łączenia w systemie Linux/Mac OS
cat dscc.min.js > myViz.js
echo >> myViz.js
cat myVizSource.js >> myViz.js
Skrypt Windows
del myViz.js
type nul > myViz.js
type dscc.min.js >> myViz.js
echo.>> myViz.js
type myVizSource.js >> myViz.js
Plik CSS określa styl wizualizacji. Skopiuj ten kod i zapisz go jako myViz.css.
.
myViz.css
#myVizTitle {
color: black;
font-size: 24px;
text-align: center;
margin: 0 auto;
}
Plik JSON konfiguracji wizualizacji określa atrybuty danych i stylu, które są obsługiwane i wymagane przez wizualizację. Wizualizacja, którą utworzysz w tym ćwiczeniu, obsługuje 1 wymiar i 1 rodzaj danych oraz wymaga 1 elementu stylu do wyboru koloru. Więcej informacji o wymiarach i danych
Skopiuj poniższy kod i zapisz go jako myViz.json.
Więcej informacji o właściwościach, które możesz skonfigurować, znajdziesz w dokumentacji konfiguracji.
myViz.json
{
"data": [
{
"id": "concepts",
"label": "Concepts",
"elements": [
{
"id": "barDimension",
"label": "Dimension",
"type": "DIMENSION",
"options": {
"min": 1,
"max": 1
}
},
{
"id": "barMetric",
"label": "Metric",
"type": "METRIC",
"options": {
"min": 1,
"max": 1
}
}
]
}
],
"style": [
{
"id": "color",
"label": "Colors",
"elements": [
{
"type": "FONT_COLOR",
"id": "barColor",
"label": "Bar Color",
"defaultValue": "black"
}
]
}
]
}
Krok 1. Utwórz projekt Google Cloud Platform (GCP)
Krok 2. Utwórz zasobnik GCP. Zalecana klasa pamięci to Regional. Szczegółowe informacje o bezpłatnych limitach znajdziesz w cenniku Cloud Storage. Jest mało prawdopodobne, że w przypadku klasy pamięci regionalnej przechowywanie wizualizacji będzie generować jakiekolwiek koszty.
Krok 3. Zapisz nazwę lub ścieżkę zasobnika, zaczynając od sekcji po Buckets/. Studio danych nazywa to „identyfikatorem komponentu”, który będzie używany do identyfikacji i wdrażania.
Plik manifestu zawiera informacje o lokalizacji wizualizacji i zasobach. Musi mieć nazwę „manifest.json
” i znajdować się w zasobniku utworzonym w poprzednim kroku (tym samym, który został użyty w przypadku identyfikatora komponentu).
Skopiuj ten kod do edytora tekstu i zapisz go jako manifest.json.
Więcej informacji o pliku manifestu znajdziesz w dokumentacji informacji o pliku manifestu.
manifest.json
{
"name": "Community Visualization",
"logoUrl": "https://raw.githubusercontent.com/googledatastudio/community-visualizations/master/docs/codelab/img/bar_chart.png",
"organization": "Data Studio Codelab",
"supportUrl": "https://url",
"packageUrl": "https://url",
"privacyPolicyUrl": "https://url",
"description": "Community Visualization Codelab",
"devMode": true,
"components": [{
"id": "barChart",
"name": "Bar Chart",
"iconUrl": "https://raw.githubusercontent.com/googledatastudio/community-visualizations/master/docs/codelab/img/bar_chart.png",
"description": "Bar chart written in d3.js",
"resource": {
"js": "MY_GOOGLE_CLOUD_STORAGE_BUCKET/myViz.js",
"config": "MY_GOOGLE_CLOUD_STORAGE_BUCKET/myViz.json",
"css": "MY_GOOGLE_CLOUD_STORAGE_BUCKET/myViz.css"
}
}]
}
- Prześlij pliki
manifest.json
,myViz.js
,myViz.json
imyViz.css
do zasobnika Google Cloud Storage za pomocą interfejsu internetowego lub narzędzia wiersza poleceń gsutil. Powtarzaj tę czynność za każdym razem, gdy aktualizujesz wizualizację.
Polecenia przesyłania gsutil
gsutil cp -a public-read manifest.json gs://MY_GOOGLE_CLOUD_STORAGE_BUCKET
gsutil cp -a public-read myViz.* gs://MY_GOOGLE_CLOUD_STORAGE_BUCKET
Krok 1. Skopiuj adres URL przykładowego zbioru danych wizualizacji społecznościowej.
Krok 2. Otwórz Studio danych i w sekcji Utwórz nowy raport kliknij Pusty.
Krok 3. W prawym dolnym rogu kliknij UTWÓRZ NOWE ŹRÓDŁO DANYCH.
Krok 4. Wybierz łącznik Arkusze Google.
Krok 5. W polu URL wpisz adres URL arkusza Google z kroku 1.
Krok 6. W prawym górnym rogu strony kliknij POŁĄCZ.
Krok 7. W nagłówku źródła danych kliknij Dostęp do wizualizacji utworzonych przez społeczność, wybierz WŁĄCZONY i kliknij Zapisz.
Krok 7. W wyświetlonym polu kliknij DODAJ DO RAPORTU, aby dodać źródło danych do raportu.
Krok 6. Na pasku narzędzi kliknij przycisk wizualizacji społeczności . Otworzy się menu.
Krok 7. Wklej nazwę zasobnika z prefiksem gs:// (
, np. gs://community-viz-docs/myViz)
, w polu tekstowym „Ścieżka pliku manifestu”, dodaj barChart
w sekcji „Identyfikator komponentu” i kliknij „DODAJ”.
Wizualizacja zostanie automatycznie narysowana na obszarze roboczym. Panel właściwości po prawej stronie powinien odzwierciedlać elementy w pliku myViz.json
.
Wizualizacja umożliwia użycie 1 wymiaru i 1 rodzaju danych.
Określono 1 element stylu – renderowanie selektora koloru czcionki z etykietą „Kolor paska”. W następnym kroku użyjesz tego selektora, aby wpłynąć na wizualizację.
W tej sekcji użyjesz elementu stylu selektora kolorów, aby zaktualizować wizualizację.
Krok 1. Zastąp kod w pliku myVizSource.js
kodem poniżej.
myVizSource.js
function drawViz(data) {
// set margins + canvas size
const margin = { top: 10, bottom: 50, right: 10, left: 10 };
const height = dscc.getHeight() - margin.top - margin.bottom;
const width = dscc.getWidth() - margin.left - margin.right;
// remove the svg if it already exists
if (document.querySelector("svg")) {
let oldSvg = document.querySelector("svg");
oldSvg.parentNode.removeChild(oldSvg);
}
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
svg.setAttribute("height", `${height}px`);
svg.setAttribute("width", `${width}px`);
const fillColor = data.style.barColor.value
? data.style.barColor.value.color
: data.style.barColor.defaultValue;
const rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
rect.setAttribute('width', `${width/2}px`);
rect.setAttribute('height', `${height/2}px`);
rect.style.fill = fillColor;
svg.append(rect);
document.body.appendChild(svg);
}
// subscribe to data and style changes
dscc.subscribeToData(drawViz, { transform: dscc.objectTransform });
Krok 2. Utwórz połączony plik JavaScript, a następnie prześlij ponownie pliki wizualizacji do Google Cloud Storage.
Krok 3. Odśwież raport w Studio danych, w którym testujesz wizualizację utworzoną przez społeczność.
Kolor prostokąta możesz zmienić za pomocą selektora w menu stylu.
W tej sekcji zaktualizujesz wizualizację, aby narysować wykres słupkowy na podstawie danych z przykładowego zbioru danych wizualizacji utworzonej przez społeczność. Uwaga: Studio danych zwraca do wizualizacji maksymalnie 2500 wierszy danych.
Krok 1. Zastąp kod w pliku myVizSource.js
kodem poniżej.
myVizSource.js
function drawViz(data) {
let rowData = data.tables.DEFAULT;
// set margins + canvas size
const margin = { top: 10, bottom: 50, right: 10, left: 10 };
const padding = { top: 15, bottom: 15 };
const height = dscc.getHeight() - margin.top - margin.bottom;
const width = dscc.getWidth() - margin.left - margin.right;
// remove the svg if it already exists
if (document.querySelector("svg")) {
let oldSvg = document.querySelector("svg");
oldSvg.parentNode.removeChild(oldSvg);
}
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
svg.setAttribute("height", `${height}px`);
svg.setAttribute("width", `${width}px`);
const fillColor = data.style.barColor.value
? data.style.barColor.value.color
: data.style.barColor.defaultValue;
const maxBarHeight = height - padding.top - padding.bottom;
const barWidth = width / (rowData.length * 2);
// obtain the maximum bar metric value for scaling purposes
let largestMetric = 0;
rowData.forEach(function(row) {
largestMetric = Math.max(largestMetric, row["barMetric"][0]);
});
rowData.forEach(function(row, i) {
// 'barDimension' and 'barMetric' come from the id defined in myViz.json
// 'dimId' is Data Studio's unique field ID, used for the filter interaction
const barData = {
dim: row["barDimension"][0],
met: row["barMetric"][0],
dimId: data.fields["barDimension"][0].id
};
// calculates the height of the bar using the row value, maximum bar
// height, and the maximum metric value calculated earlier
let barHeight = Math.round((barData["met"] * maxBarHeight) / largestMetric);
// normalizes the x coordinate of the bar based on the width of the convas
// and the width of the bar
let barX = (width / rowData.length) * i + barWidth / 2;
// create the "bar"
let rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
rect.setAttribute("x", barX);
rect.setAttribute("y", maxBarHeight - barHeight);
rect.setAttribute("width", barWidth);
rect.setAttribute("height", barHeight);
rect.setAttribute("data", JSON.stringify(barData));
rect.style.fill = fillColor;
svg.appendChild(rect);
// add text labels
let text = document.createElementNS("http://www.w3.org/2000/svg", "text");
let textX = barX + barWidth / 2;
text.setAttribute("x", textX);
text.setAttribute("text-anchor", "middle");
let textY = maxBarHeight + padding.top;
text.setAttribute("y", textY);
text.setAttribute("fill", fillColor)
text.innerHTML = barData["dim"];
svg.appendChild(text);
});
document.body.appendChild(svg);
}
// subscribe to data and style changes
dscc.subscribeToData(drawViz, { transform: dscc.objectTransform });
Krok 2. Utwórz połączony plik JavaScript, a następnie prześlij ponownie pliki wizualizacji do Google Cloud Storage.
Krok 3. Odśwież raport w Studio danych, w którym testujesz wizualizację utworzoną przez społeczność. Powinien pojawić się wykres słupkowy z etykietami wygenerowanymi na podstawie danych z arkusza Google. Aby zmienić kolor słupków, zmień kolor wybrany w selektorze Styl „Kolor słupka”.
W tej sekcji zaktualizujesz wizualizację, aby narysować wykres słupkowy na podstawie danych z przykładowego zbioru danych wizualizacji utworzonej przez społeczność.
Krok 1. Zastąp kod w pliku myVizSource.js
kodem poniżej.
myVizSource.js
// create a title element
var titleElement = document.createElement('div');
titleElement.id = 'myVizTitle';
document.body.appendChild(titleElement);
function drawViz(data) {
let rowData = data.tables.DEFAULT;
// set margins + canvas size
const margin = { top: 10, bottom: 50, right: 10, left: 10 };
const padding = { top: 15, bottom: 15 };
const height = dscc.getHeight() - margin.top - margin.bottom;
const width = dscc.getWidth() - margin.left - margin.right;
const fillColor = data.style.barColor.value
? data.style.barColor.value.color
: data.style.barColor.defaultValue;
// remove the svg if it already exists
if (document.querySelector("svg")) {
let oldSvg = document.querySelector("svg");
oldSvg.parentNode.removeChild(oldSvg);
}
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
svg.setAttribute("height", `${height}px`);
svg.setAttribute("width", `${width}px`);
const maxBarHeight = height - padding.top - padding.bottom;
const barWidth = width / (rowData.length * 2);
// obtain the maximum bar metric value for scaling purposes
let largestMetric = 0;
rowData.forEach(function (row) {
largestMetric = Math.max(largestMetric, row["barMetric"][0]);
});
rowData.forEach(function (row, i) {
// 'barDimension' and 'barMetric' come from the id defined in myViz.json
// 'dimId' is Data Studio's unique field ID, used for the filter interaction
const barData = {
dim: row["barDimension"][0],
met: row["barMetric"][0],
dimId: data.fields["barDimension"][0].id
};
// calculates the height of the bar using the row value, maximum bar
// height, and the maximum metric value calculated earlier
let barHeight = Math.round((barData["met"] * maxBarHeight) / largestMetric);
// normalizes the x coordinate of the bar based on the width of the convas
// and the width of the bar
let barX = (width / rowData.length) * i + barWidth / 2;
// create the "bar"
let rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
rect.setAttribute("x", barX);
rect.setAttribute("y", maxBarHeight - barHeight);
rect.setAttribute("width", barWidth);
rect.setAttribute("height", barHeight);
rect.setAttribute("data", JSON.stringify(barData));
// use style selector from Data Studio
rect.style.fill = fillColor;
svg.appendChild(rect);
// add text labels
let text = document.createElementNS("http://www.w3.org/2000/svg", "text");
let textX = barX + barWidth / 2;
text.setAttribute("x", textX);
text.setAttribute("text-anchor", "middle");
let textY = maxBarHeight + padding.top;
text.setAttribute("y", textY);
text.setAttribute("fill", fillColor)
text.innerHTML = barData["dim"];
svg.appendChild(text);
});
document.body.appendChild(svg);
// Get the human-readable name of the metric and dimension
var metricName = data.fields['barMetric'][0].name;
var dimensionName = data.fields['barDimension'][0].name;
titleElement.innerText = metricName + ' by ' + dimensionName;
}
dscc.subscribeToData(drawViz, { transform: dscc.objectTransform });
Krok 2. Utwórz połączony plik JavaScript, a następnie prześlij ponownie pliki wizualizacji do Google Cloud Storage.
Krok 3. Odśwież raport w Studio danych, w którym testujesz wizualizację utworzoną przez społeczność. Powinien pojawić się wykres słupkowy z tytułem wygenerowanym na podstawie danych i sformatowanym za pomocą pliku myViz.css
.
Gratulacje – udało Ci się utworzyć wizualizację utworzoną przez społeczność w Studiu danych. To już koniec tego ćwiczenia. Zobaczmy teraz, jakie możesz podjąć kolejne kroki.
Rozszerzanie wizualizacji
- Dodawanie interakcji do wizualizacji
- Dowiedz się, jak tworzyć wizualizacje lokalnie
- Dowiedz się więcej o dostępnych elementach stylu i dodaj do wizualizacji dodatkowe style.
Więcej możliwości dzięki wizualizacjom utworzonym przez społeczność
- Zapoznaj się z informacjami o bibliotece pomocniczej dscc, pliku manifestu i pliku konfiguracji.
- Prześlij wizualizację do naszej galerii wizualizacji utworzonych przez społeczność.
- Utwórz społecznościowe oprogramowanie sprzęgające dla Studia danych.
Dodatkowe materiały
Poniżej znajdziesz różne zasoby, które pomogą Ci pogłębić informacje przedstawione w tym module.
Typ zasobu | Funkcje dla użytkowników | Funkcje dla programistów |
Dokumentacja | ||
Wiadomości i aktualności | Zarejestruj się w Studio danych > Ustawienia użytkownika. | |
Zadawanie pytań | ||
Filmy | Już wkrótce | |
Przykłady |