Apexcharts ile Veri Görselleştirme

Yayınlanan: 2022-03-10
Hızlı özet ↬ Bu makalede, ApexCharts'ı ve sağladığı farklı grafik türleri ve türevlerini göreceksiniz. Bu arada, birkaç tür çizelge oluşturacağız ve çizelgelerimizin görünümünü nasıl özelleştirebileceğimizi öğreneceğiz. Makalenin sonunda, ApexCharts ile uygulamalarınıza farklı tür ve sohbet çeşitlerini entegre edebileceksiniz.

ApexCharts, geliştiricilerin basit bir API ile web sayfaları için güzel ve etkileşimli görselleştirmeler oluşturmasına yardımcı olan modern bir grafik kitaplığıdır; React-ApexCharts ise ApexChart'ın ApexCharts'ı uygulamalarımızda kullanmamıza izin veren React entegrasyonudur. Bu makale, müşterilerine karmaşık grafiksel veriler göstermesi gereken kişiler için faydalı olacaktır.

Başlarken

İlk olarak, React-ApexCharts bileşenini React uygulamanıza kurun ve react-apexcharts içe aktarın.

 npm i react-apexcharts apexcharts import ReactApexCharts from 'react-apexcharts'

Bir ApexChart'ın temel bileşenleri, onun yapılandırma nesnesidir. Yapılandırma nesnesinde, bir grafik için series ve options özelliklerini tanımlarız. series , grafik üzerinde görselleştirmek istediğimiz verilerdir. Seride, veriyi ve verinin adını tanımlarız. Veri dizisindeki değerler, grafiğin y ekseninde çizilecektir. Grafiğin üzerine geldiğinizde verilerin adı görünecektir. Tek veya birden fazla veri seriniz olabilir. options , bir grafiğin nasıl görünmesini istediğimizi, bir grafiğe eklemek istediğimiz özellikleri ve araçları ve bir grafiğin x ve y eksenlerinin etiketlerini tanımlarız. Yapılandırma nesnesinin series ve options özelliklerinde tanımladığımız veriler, sırasıyla ReactApexChart bileşeninin series ve options props'larına aktardığımız verilerdir.

ApexChart bileşenlerinin birlikte nasıl çalıştığına dair bir örnek. (Makalede daha sonra bunlara daha yakından bakacağız.)

 const config = { series: [1, 2, 3, 4, 5], options: { chart: { toolbar: { show: true }, } } } return ( <ReactApexChart options={config.options} series={config.series} type="polarArea" /> )

Belgeleri incelerken, aşağıdaki kod parçacığında olduğu gibi, seçenekler nesnesinde genişlik, yükseklik ve grafiğin türünün tanımlandığını fark edeceksiniz.

 const config = { series: [44, 55, 13, 43, 22], chart: { width: 380, type: 'pie' } },

Bunun nedeni, belgelerin Vanilla JavaScript uygulaması düşünülerek yazılmış olmasıdır. React ile çalışıyoruz, bu nedenle genişlik, yükseklik ve türü, bunları ReactApexCharts bileşenine destek olarak ileterek tanımlarız. Bunun nasıl çalıştığını bir sonraki bölümde göreceğiz.

Atlamadan sonra daha fazlası! Aşağıdan okumaya devam edin ↓

Çizgi Grafikleri

Bu, zamanla değişen bilgileri göstermek için kullanılan bir grafik türüdür. Düz çizgilerle birbirine bağlanan birkaç nokta kullanarak bir çizgi çiziyoruz. Bir veri parçasının zaman içinde nasıl değiştiğini görselleştirmek için Çizgi grafikler kullanıyoruz. Örneğin, bir finansal uygulamada, bir kullanıcıya satın almalarının bir süre içinde nasıl arttığını göstermek için kullanabilirsiniz.

ApexCharts ile oluşturulmuş bir Çizgi grafiği örneği
ApexCharts ile oluşturulmuş bir Çizgi grafiği örneği. (Büyük önizleme)

Bu çizelge aşağıdaki bileşenlerden oluşur:

  • Başlık
    Bu, grafiğin en üstünde yer alır ve kullanıcıyı grafiğin hangi verileri temsil ettiği konusunda bilgilendirir.
  • araç çubuğu
    Araç çubuğu, yukarıdaki resimde sağ köşededir. Grafiğin yakınlaştırma seviyesini kontrol eder. Karakteri araç çubuğu aracılığıyla da dışa aktarabilirsiniz.
  • Eksen etiketleri
    Sol ve sağ eksenlerde, her eksen için etiketlerimiz var.
  • Veri etiketleri
    Veri etiketleri, hat üzerindeki her bir çizim noktasında görülebilir. Grafikteki verileri görüntülemeyi kolaylaştırırlar.

Çizgi grafiğin nasıl göründüğünü ve farklı bileşenlerini gördük. Şimdi bir tane oluşturma adımlarından geçelim.

series ile başlıyoruz. Burada serinin verilerini ve adını tanımlıyoruz. Ardından, options ve series ReactApexChart bileşeninin props'larına aktarıyoruz. Ayrıca grafiğin type prop türünde tanımlayıp line olarak ayarlıyoruz.

 const config = { series: [{ name: "Performance", data: [10, 21, 35, 41, 59, 62, 79, 81, 98] }], options: {} } return ( <ReactApexChart options={config.options} series={config.series} type="line" /> )

Bir ApexChart'ın kritik kısmı, onun series verileridir. options özelliğinde tanımlanan konfigürasyonlar isteğe bağlıdır. options herhangi bir tanım ayarlamadan veriler görüntülenmeye devam edecektir. Ancak, en okunabilir grafik olmayabilir. options içinde herhangi bir özel tanım ayarlamamaya karar verirseniz, bunun hala boş bir nesne olarak mevcut olması gerekir.

Seçenekler nesnesine konfigürasyonlar eklenmemiş bir Çizgi grafiğin varsayılan biçimi
Çizgi grafiğin varsayılan görünümü. (Büyük önizleme)

config nesnesinde sahip olduğumuz options nesnesine bazı değerler ekleyerek grafiğin seçeneklerini yapılandıralım.

options nesnesinin chart özelliğinde, grafiğin konfigürasyonlarını tanımlarız. Burada, show özelliğini true olarak ayarlayarak araç çubuğunu grafikten ekliyoruz. Araç çubuğu, grafiğin yakınlaştırma düzeyini kontrol etmek ve grafiği farklı dosya formatlarında dışa aktarmak için araçlar sağlar. Araç çubuğu varsayılan olarak görünür durumdadır.

 options: { chart: { toolbar: { show: true }, }, }

Grafik için veri etiketlerini etkinleştirerek grafiğimizin okunmasını kolaylaştırabiliriz. Bunu yapmak için, options nesnesine dataLabels özelliğini ekliyoruz ve enabled özelliğini true olarak ayarladık. Bu, grafikteki verileri yorumlamayı kolaylaştırır.

 dataLabels: { enabled: true },
Veri etiketleri eklenmiş bir çizgi grafik
Veri etiketlerinin eklendiği bir çizgi grafiği. (Büyük önizleme)

Varsayılan olarak, çizgi grafiğin konturu düzdür. Ancak kıvrık hale getirebiliriz. options stroke özelliğini ekliyoruz ve curve smooth olarak ayarlıyoruz.

 stroke: { curve: "smooth" }
Eğri bir çizgi grafiği
Eğri bir çizgi grafiği. (Büyük önizleme)

Herhangi bir grafiğin önemli bir parçası başlığıdır. Grafiğe bir başlık vermek için options bir title özelliği ekliyoruz.

 title: { text: 'A Line Chart', align: 'left' },
Sol üst köşede başlığı olan bir çizgi grafik
Sol üst köşede başlığı olan bir çizgi grafik. (Büyük önizleme)

Grafiğin x ve y eksenlerine etiket ekleyebiliriz. Bunu yapmak için options xaxis ve yaxis özelliklerini ekliyoruz ve orada her eksen için title tanımlıyoruz.

 xaxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'], title: { text: 'Month' } }, yaxis: { title: { text: 'Performance' } }
x ve y eksenlerine etiketler eklenmiş bir çizgi grafik
Eksen etiketleri eklenmiş bir Çizgi grafiği. (Büyük önizleme)

Sonunda, kodunuz şöyle görünmelidir. Bu adımlarla, yalnızca bir çizgi grafiği oluşturmakla kalmadık, tanımladığımız options bir grafiği nasıl iyileştirebileceğinin bir dökümünü de gördük.

 import ReactApexCharts from 'react-ApexCharts' const config = { series: [{ name: "Performance", data: [10, 21, 35, 41, 59, 62, 79, 81, 98] }], options: { chart: { toolbar: { show: true }, }, dataLabels: { enabled: true }, stroke: { curve: "smooth" } title: { text: 'A Line Chart', align: 'left' }, xaxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'], title: { text: 'Month' } }, yaxis: { title: { text: 'Performance' } } } } return ( <ReactApexChart options={config.options} series={config.series} type="line" /> )

Alan Grafikleri

Bir alan grafiği, veri değerlerinin grafikte nasıl çizildiği ve çizgi segmentleri kullanılarak nasıl bağlandığı açısından bir çizgi grafiği gibidir. Tek fark, bir alan grafiğinde, veri noktaları tarafından çizilen alanın gölgeler veya renklerle doldurulmasıdır. Çizgi grafikler gibi, alan grafikleri de bir veri parçasının zaman içinde nasıl değiştiğini gösterir. Ancak çizgi grafiklerin aksine hacmi görsel olarak da temsil edebilirler. Bir dizi verideki grupların nasıl kesiştiğini göstermek için kullanabiliriz. Örneğin, farklı tarayıcılar aracılığıyla uygulamanıza erişen kullanıcıların hacmini gösteren bir grafik.

ApexCharts ile oluşturulmuş bir alan grafiği örneği
ApexCharts ile oluşturulmuş bir Alan grafiği örneği. (Büyük önizleme)

Yukarıdaki resimde bir alan grafiği örneğimiz var. Çizgi grafik gibi bir başlığı, veri etiketleri ve eksen etiketleri vardır. Çizilen alan grafiğinin gölgeli kısmı verilerdeki hacmi gösterir. Ayrıca series2 verilerin series1 verilerle nasıl kesiştiğini gösterir. Alan grafiklerinin başka bir kullanım durumu, iki veya daha fazla veri parçası arasındaki ilişkiyi ve bunların nasıl kesiştiğini göstermektir.

Yığın alan grafiğinin nasıl oluşturulacağını ve buna veri etiketlerinin nasıl ekleneceğini görelim.

Bir alan grafiği oluşturmak için, grafik türünü area ve konturu smooth olarak ayarladık. Bu, bir alan grafiği için varsayılan vuruştur.

 const config = { options: { stroke: { curve: 'smooth' } } } return ( <ReactApexChart options={config.options} series={config.series} type="area" /> )
İstiflenmemiş alan grafiği
İstiflenmemiş alan grafiği. (Büyük önizleme)

Bunu yığılmış bir grafik yapmak için options nesnesinin chart özelliğinde stacked true olarak ayarladık.

 const config = { options: { stroke: { curve: 'smooth' }, chart: { stacked: true } } return ( <ReactApexChart options={config.options} series={config.series} type="area" /> )
Yığılmış Alan grafiği
Yığılmış alan grafiği. (Büyük önizleme)

Çubuk grafikler

Verileri temsil ettikleri değerlerle orantılı yüksekliklerde veya uzunluklarda dikdörtgen çubuklarla sunmak için çubuk grafikler kullanırız. İnsanların ne tür arabaları olduğu veya bir mağazanın farklı günlerde kaç müşterisi olduğu gibi farklı kategorileri karşılaştırmak için en iyi şekilde kullanılır.

Bazı verileri gösteren bir çubuk grafik
Bazı verileri gösteren bir çubuk grafik. (Büyük önizleme)

Yatay çubuklar, bir çubuk grafiğin ana bileşenleridir. Farklı kategorilerin değerlerini kolaylıkla karşılaştırmamızı sağlarlar.

Bir çubuk grafik oluşturmaya, grafik için seri verilerini tanımlayarak ve ReactApexChart bileşeninin type bar olarak ayarlayarak başlarız.

 const config = { series: [{ data: [400, 430, 448, 470, 540, 580, 690, 1100, 1200, 1380] }], options: {} } return ( <ReactApexChart options={config.options} series={config.series} type="bar" /> )
Bir çubuk grafiğin varsayılan biçimi
Bir çubuk grafiğin varsayılan görünümü. (Büyük önizleme)

Barlara daha fazla yaşam ve farklılık katalım. Varsayılan olarak, çubuk grafikler dikeydir. Bunları yatay yapmak için, plotOptions özelliğinde çubukların nasıl görünmesini istediğimizi tanımlarız. Çubukları yatay hale getirmek için horizontal desteği true olarak ayarladık. dataLabels konumunu bottom olarak ayarladık. Ayrıca top veya center olarak da ayarlayabiliriz. distributed pervane, barlarımıza farklılık katıyor. Onsuz, çubuklara belirgin renkler uygulanmayacak ve gösterge grafiğin altında gösterilmeyecektir. Ayrıca, startingShape ​​Şekil ve endingShape özelliklerini kullanarak çubukların şeklini tanımlarız.

 options{ plotOptions: { bar: { distributed: true, horizontal: true, startingShape: "flat", endingShape: "rounded", dataLabels: { position: 'bottom', }, } }, }
Dağıtılmış özelliği false olarak ayarlanmış çubuklar
distributed özelliği false olarak ayarlanmış çubuklar. (Büyük önizleme)
Dağıtılmış özelliği true olarak ayarlanmış çubuklar
distributed özelliği true olarak ayarlanmış çubuklar. (Büyük önizleme)

Ardından, grafiğe kategorileri, etiketleri ve başlıkları ekliyoruz.

 xaxis: { categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan', 'United States', 'China', 'India'] }, title: { text: 'A bar Chart', align: 'center', },
Etiketlerin eklendiği çubuk grafiğin son şekli
Yatay çubukların nihai sonucu. (Büyük önizleme)

Sütun Grafikleri

Sütun grafiği, her kategorinin bir dikdörtgenle temsil edildiği ve dikdörtgenin yüksekliğinin çizilen değerlerle orantılı olduğu bir veri görselleştirmesidir. Çubuk grafikler gibi, sütun grafikler de farklı veri kategorilerini karşılaştırmak için kullanılır. Sütun grafikler, dikey çubuk grafikler olarak da bilinir. Yukarıdaki çubuk grafiği sütun grafiğine dönüştürmek için tek yapmamız gereken plotOptions içinde horizontal olarak false olarak ayarlamaktır.

Bir işletmenin kârını, gelirini ve nakit akışını karşılaştıran bir sütun grafiği
Bir işletmenin kârını, gelirini ve nakit akışını karşılaştıran bir sütun grafiği. (Büyük önizleme)

Dikey sütunlar, görselleştirdiğimiz verileri yorumlamayı kolaylaştırır. Ayrıca, her sütunun üstüne eklenen veri etiketleri grafiğin okunabilirliğini artırır.

Şimdi temel bir sütun grafiği oluşturmaya bakalım ve onu nasıl yığılmış sütun grafiğine dönüştürebileceğimizi görelim.

Her zaman olduğu gibi, series verileriyle başlıyoruz ve grafik type “bar” olarak ayarlıyoruz.

 const config = { series: [{ name: 'Net Profit', data: [44, 55, 57, 56, 61, 58, 63, 60, 66] }, { name: 'Revenue', data: [76, 85, 101, 98, 87, 105, 91, 114, 94] }, { name: 'Free Cash Flow', data: [35, 41, 36, 26, 45, 48, 52, 53, 41] }], options: {} } return ( <ReactApexChart options={config.options} series={config.series} type="bar" /> )
Sütun grafiğinin varsayılan biçimi
Sütun grafiğinin varsayılan görünümü. (Büyük önizleme)

Kutudan çıkardığımız şey bu. Ancak özelleştirebiliriz. Çubukların genişliğini ve şeklini plotOptions özelliğinde tanımlarız. Ayrıca dataLabel konumunu top olarak ayarladık.

 options: { plotOptions: { bar: { columnWidth: '75%', endingShape: 'flat', dataLabels: { position: "top" }, }, }, }
Veri etiketleri eklenmiş bir sütun grafiği
Veri etiketlerinin eklendiği bir sütun grafiği. (Büyük önizleme)

Ardından, veri etiketlerinin stilini ve yazı tipi boyutunu ve grafiklerden uzaklıklarını tanımlarız. Son olarak, x ve y eksenleri için etiketleri ekliyoruz.

 options: { dataLabels: { offsetY: -25, style: { fontSize: '12px', colors: ["#304758"] } }, xaxis: { categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct'], }, yaxis: { title: { text: '$ (thousands)' } }, }
Sütun grafiğinin son şekli
Kolonun son şekli. (Büyük önizleme)

Bunu yığılmış bir grafiğe dönüştürmek için tek yapmamız gereken chart stacked bir özellik eklemek ve onu true olarak ayarlamak. Ayrıca, yığın grafiğine geçtiğimiz için, eğrileri kaldırmak için çubukların endingShape flat olarak değiştireceğiz.

 options: { chart: { stacked: true, }, plotOptions: { bar: { endingShape: 'flat', } } }
Yığılmış sütun grafiği
Yığılmış bir sütun grafiği. (Büyük önizleme)

Pasta ve Çörek Çizelgeleri

Pasta grafiği, bireysel kategorileri bütünün dilimleri veya yüzdeleri olarak gösteren dairesel bir grafiktir. Halka grafiği, ortasında bir delik bulunan pasta grafiğin bir çeşididir ve kategorileri dilimler yerine yaylar olarak görüntüler. Her ikisi de parçadan bütüne ilişkileri bir bakışta kavramayı kolaylaştırır. Pasta grafikler ve halka grafikler, seçim ve nüfus sayımı sonuçlarını, ürün veya bölüme göre geliri, geri dönüşüm verilerini, anket yanıtlarını, bütçe dökümlerini, eğitim istatistiklerini, harcama planlarını veya nüfus bölümlemesini görselleştirmek için yaygın olarak kullanılır.

Pasta grafik örneği
Pasta grafiği örneği. (Büyük önizleme)

Pasta ve halka grafiklerde series yüzde olarak hesaplanır. Bu, series değerlerin toplamının 100 olması gerektiği anlamına gelir.

Bir pasta grafiği oluşturarak başlayalım. Grafik type pie olarak belirledik. Ayrıca grafik için series tanımlıyoruz ve options etiketleri tanımlıyoruz. Etiketlerin sırası, series dizisindeki değerlere karşılık gelir.

 const config = { series: [20, 10, 35, 12, 23], options: { labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'], } } return ( <ReactApexChart options={config.options} series={config.series} type="pie" /> )
Pasta grafiği
Pasta grafiği. (Büyük önizleme)

Grafiklerimizin duyarlı doğasını kontrol edebiliriz. Bunu yapmak için grafiğin options responsive bir özellik ekliyoruz. Burada max-width kesme noktasını 480px olarak ayarladık. Ardından, grafiğin width 450px ve göstergenin position bottom ayarladık. Şimdi, 480px ve altındaki ekran boyutlarında, gösterge grafiğin altında görünecektir.

 options: { labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'], responsive: [{ breakpoint: 480, options: { chart: { width: 450 }, legend: { position: 'bottom' } } }] },

Pasta grafiği halka grafiğine dönüştürmek için tek yapmanız gereken bileşenin type donut olarak değiştirmek.

 <ReactApexChart options={config.options} series={config.series} type="donut" />
Bir çörek grafiği
Bir çörek tablosu. (Büyük önizleme)

Karışık Grafikler

Karma grafikler, iki veya daha fazla grafik türünü tek bir grafikte birleştirmenize olanak tanır. Verilerinizdeki sayılar, veri serilerinden veri serilerine büyük ölçüde farklılık gösterdiğinde veya karma veri türlerine (örneğin, fiyat ve hacim) sahip olduğunuzda karma grafikleri kullanabilirsiniz. Karma grafikler, farklı veri türlerini aynı formatta aynı anda görselleştirmeyi kolaylaştırır.

Karışık bir grafik
Karışık bir tablo. (Büyük önizleme)

Çizgi, alan ve sütun grafiğinin bir kombinasyonunu yapalım.

Grafiklerin her biri için series verilerini ve type tanımlarız. Karma grafikler için, her grafiğin türü, ReactApexChart bileşeninin type prop'unda değil, kendi series tanımlanır.

 const config = { series: [{ name: 'TEAM A', type: 'column', data: [23, 11, 22, 27, 13, 22, 37, 21, 44, 22, 30] }, { name: 'TEAM B', type: 'area', data: [44, 55, 41, 67, 22, 43, 21, 41, 56, 27, 43] }, { name: 'TEAM C', type: 'line', data: [30, 25, 36, 30, 45, 35, 64, 52, 59, 36, 39] }], options: {} }
Karışık bir grafiğin varsayılan biçimi
Karışık grafiğin varsayılan biçimi. (Büyük önizleme)

Ardından, kontur türünü smooth ve genişliğini tanımlayacak şekilde ayarlıyoruz. Her grafiğin genişliğini tanımlamak için bir dizi değer iletiyoruz. Dizideki değerler, series olarak tanımlanan çizelgelerin sırasına karşılık gelir. Ayrıca her grafiğin dolgusunun opaklığını da tanımlarız. Bunun için de bir diziye geçiyoruz. Bu şekilde her grafiğin opaklığını ayrı ayrı kontrol edebiliriz.

Son olarak, x ve y eksenleri için etiketleri ekliyoruz.

 options: { stroke: { width: [2,2,4], curve: 'smooth' }, fill: { opacity: [0.7, 0.3, 1], }, labels: ['Jan', 'Feb', 'March', 'April', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov'], yaxis: { title: { text: 'Points', }, }, }
Ayarlanmış opaklığa sahip karma bir grafik
Ayarlanmış opaklığa sahip karma bir grafik. (Büyük önizleme)

Grafiklerimizi özelleştirme

Grafiklerimizin rengini değiştirmenin yanı sıra, onlara bir miktar özelleştirme ekleyebiliriz.

Çizelgelerimize ızgaralar ekleyebilir ve onları biçimlendirebiliriz. grid özelliğinde, grafiğin satır ve sütunlarının renklerini tanımlarız. Grafiğinize ızgaralar eklemek, anlamayı kolaylaştırabilir.

 options: { grid: { row: { colors: ['#f3f3', 'transparent'], opacity: 0.5 }, column: { colors: ['#dddddd', 'transparent'], opacity: 0.5 }, }, }
Izgaraların eklendiği bir çizgi grafik
Izgaraların eklendiği bir çizgi grafiği. (Büyük önizleme)

Grafiklerin konturunu ayarlayabilir ve renklerini tanımlayabiliriz. Bunu sütun grafiğiyle yapalım. Renk dizisindeki her colors , series dizisindeki verilere karşılık gelir.

 options: { stroke: { show: true, width: 4, colors: ['red', "blue", "green" ] }, }
Kontur eklenmiş bir sütun grafiği
Kontur eklenmiş bir sütun grafiği. (Büyük önizleme)

Çözüm

ApexCharts'ın sağladığı bazı grafik türlerini inceledik ve bir grafik türünden diğerine nasıl geçileceğini öğrendik. Ayrıca çizelgelerimizin görünümünü özelleştirmenin bazı yollarını da gördük. Hala keşfedilecek çok şey var, bu yüzden hemen ApexCharts belgelerine dalın.