Google Charts
The GoogleChart komponentti integroi Google Charts kirjaston webforJ:hin, antaen pääsyn kaaviotyyppeihin kuten palkki, viiva, piirakka, geo ja muita. Kaaviot konfiguroidaan Javalla käyttäen tyyppiä, tietojoukkoa ja vaihtoehtokarttaa, joka hallitsee ulkoasua ja käyttäytymistä.
Luominen kaavio
Käytettäväksesi GoogleChart-luokkaa sovelluksessasi, käytä seuraavaa XML:ää POM-tiedostossasi:
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-googlecharts</artifactId>
<version>${webforj.version}</version>
</dependency>
Kaavion luomiseksi, määritä kaaviotyyppi, konfiguroi visuaaliset vaihtoehdot ja tarjoa näytettävä data.
Tässä esimerkissä luodaan geo-kaavio, joka kartoittaa liikevaihtotiedot eri maissa, mukautettujen värien, legendan asettelun ja kaavioalueen koon kanssa:
Näytä koodi
- ChartView.java
- chart.css
Kaaviotyypit
GoogleChart-lisäosa tarjoaa kattavan valikoiman kaaviotyyppejä erilaisille tietovizualisaatio vaatimuksille. Sopivan kaaviotyypin valinta on olennaista, jotta tiedon tarina voidaan viestiä tehokkaasti. Katso alla olevaa galleriaa esimerkkejä yleisistä kaavioista, joita voidaan käyttää webforJ-sovelluksessa.
Näytä koodi
- ChartGalleryView.java
- chartGallery.css
Vaihtoehdot
GoogleChart-lisäosa mahdollistaa laajan mukauttamisen eri vaihtoehtojen avulla. Nämä vaihtoehdot antavat sinun räätälöidä kaavioiden ulkoasun ja toiminnallisuuden sovelluksesi tarpeita varten. Vaihtoehtoja välitetään Map<String, Object> muodossa kaavion setOptions()-menetelmään.
Tässä esimerkki kaavion vaihtoehtojen asettamisesta:
Map<String, Object> options = new HashMap<>();
options.put("title", "Kuukausittainen liikevaihto");
options.put("backgroundColor", "#EFEFEF");
// Käytä vaihtoehtoja kaaviossa
chart.setOptions(options);
Lisätietoja saatavilla olevista vaihtoehdoista tietyille kaavioille, katso Google Visualization API viite (Kaaviogalleria).
Datan asettaminen
Datan visualisoiminen GoogleChart-kaaviolla edellyttää datan oikeaa rakennetta ja asettamista. Tämä opas käy läpi datan valmistelun ja sen soveltamisen kaavioihisi.
Perusdatan asettaminen
Yksinkertaisin tapa määritellä data on käyttää List<Object>, missä jokainen rivi on lista arvoja.
List<Object> data = new ArrayList<>();
data.add(Arrays.asList("Tehtävä", "Tunteja päivässä"));
data.add(Arrays.asList("Työ", 11));
data.add(Arrays.asList("Syö", 2));
data.add(Arrays.asList("Kulje", 2));
data.add(Arrays.asList("Katso TV", 2));
data.add(Arrays.asList("Nuku", 7));
chart.setData(data);
Karttojen käyttö monimutkaisemmille rakenteille
Monimutkaisempia tietorakenteita varten voit käyttää karttoja rivien esittämiseen ja muuntaa ne sitten vaadittuun muotoon.
List<Object> data = new ArrayList<>();
// Otsikkorivi
data.add(Arrays.asList("Maa", "Liikevaihto"));
// Datarivit
Map<String, Object> row1 = Map.of("Maa", "Saksa", "Liikevaihto", 1000);
Map<String, Object> row2 = Map.of("Maa", "Yhdysvallat", "Liikevaihto", 1170);
Map<String, Object> row3 = Map.of("Maa", "Brasilia", "Liikevaihto", 660);
data.add(new ArrayList<>(row1.values()));
data.add(new ArrayList<>(row2.values()));
data.add(new ArrayList<>(row3.values()));
chart.setData(data);
Kun data on valmisteltu, se voidaan asettaa GoogleChart-kaavioon setData-menetelmällä.
Näytä koodi
- ChartSettingDataView.java
Datan ja vaihtoehtojen lataaminen JSON:sta
Voit myös ladata dataa ja vaihtoehtoja JSON-tiedostoista käyttäen Gsonia helpomman hallinnan vuoksi. Tämä lähestymistapa auttaa pitämään datan ja vaihtoehdot järjestyksessä sekä helposti päivitettävänä.
List<Object> data = new ArrayList<>();
data.add(Arrays.asList("Vuosi", "Myynti", "Kulut"));
data.add(Arrays.asList("2013", 1000, 400));
data.add(Arrays.asList("2014", 1170, 460));
data.add(Arrays.asList("2015", 660, null));
data.add(Arrays.asList("2016", 1030, 540));
chart.setData(data);
Map<String, Object> options = new Gson().fromJson(
Assets.contentOf("options.json"),
new TypeToken<Map<String, Object>>() {}.getType()
);
chart.setOptions(options);
Kaavioiden visuaalien päivittäminen
Kaavioidesi ulkoasun päivittäminen tai uudistaminen datan muutosten, käyttäjävuorovaikutusten tai visuaalisten vaihtoehtojen sääntöjen mukaisesti on suoraviivaista redraw()-menetelmän avulla. Tämä menetelmä varmistaa, että kaaviosi pysyvät tarkkoina ja visuaalisesti kohdistettuina taustadatan tai asetusten muutoksille.
Kutsu redraw() esimerkiksi seuraavissa tilanteissa:
- Datan muutosten jälkeen: Varmistaa, että kaavio heijastaa kaikki päivitykset sen tietolähteeseen.
- Vaihtoehtojen muuttuessa: Soveltaa uusia tyylittely- tai konfigurointimuutoksia kaavioon.
- Vastaaviin säätöihin: Säädä kaavion asettelua tai kokoa, kun säilön mitat muuttuvat, varmistaen optimaalisen näyttämisen eri laitteilla.
Näytä koodi
- ChartRedrawView.java
- chartRedraw.css
Kaavioiden vieminen kuvina
getImageUri()-menetelmä tarjoaa tavan viedä Google Charts Base64-koodattujen PNG-kuvina. Tämä menetelmä on erityisen hyödyllinen kaavioiden jakamisessa web-ympärön ulkopuolella, niiden upottamisessa sähköposteihin tai asiakirjoihin tai yksinkertaisesti arkistointitarkoituksiin.
Kutsu getImageUri() kaavioinstanssisi jälkeen, kun kaavio on täysin renderöity. Tyypillisesti tätä menetelmää käytetään "valmis" tapahtuman kuuntelijassa varmistaaksesi, että kaavio on valmis vientiin:
chart.addReadyListener(e -> {
String imageUri = chart.getImageUri();
// Nyt voit käyttää imageUri, esimerkiksi img-tagina src-attribuuttina
});
GoogleChartSelectedEvent
GoogleChartSelectedEvent laukaisee aina, kun käyttäjä valitsee datan pisteen tai segmentin Google Chart -komponentissa. Tämä tapahtuma mahdollistaa vuorovaikutuksen valitun kaavidatan kanssa ja antaa tietoja siitä, mitä on valittu. Tapahtumaan voidaan reagoida käyttämällä addSelectedListener()-menetelmää GoogleChart-instanssilla.
GoogleChartSelectedEvent on hyödyllinen sovelluksissa, joissa käyttäjän vuorovaikutus kaavion kanssa on tarpeen.
GoogleChart chart = new GoogleChart(GoogleChart.Type.BAR);
// Lisää valitsemisen kuuntelija kaavioon
chart.addSelectedListener(event -> {
// Hanki valinta
List<Object> selection = chart.getSelection();
// Käsittele valittua tapahtumaa
if (!selection.isEmpty()) {
System.out.println("Valittu rivi: " + selection.get(0));
// Lisäprosessi valinnan rivin/kolumnin perusteella
}
});
Payload
GoogleChartSelectedEvent tarjoaa pääsyn valintadataksi, joka voidaan hakea kaavio-objektin getSelection()-menetelmällä. Tämä menetelmä palauttaa listan objekteista, joissa jokaisessa objektissa on seuraavat ominaisuudet:
- row: Valitun rivin indeksi kaavion tietotaulukossa.
- column: Tietotaulukon kolumnin indeksi, joka on valinnainen ja pätee kaavioille, jotka sallivat yksittäisten solujen valinnan, kuten taulukko kaavio.
Esimerkiksi piirakka- tai palkkikaavioissa tarjoillaan yleensä vain row, mikä osoittaa valittua datakohtaa.
Esimerkki kuormasta:
[
{
"row": 3, // Valitun rivin indeksi datassa
"column": 2 // (Valinnainen) Valitun kolumnin indeksi
}
]
Jos käyttäjä valitsee useita datakohtia, getSelection()-menetelmä palauttaa taulukon objekteista, joista kukin edustaa valittua elementtiä. Kuorma voi vaihdella kaaviotyypin ja käyttäjän suorittaman vuorovaikutuksen mukaan.