ui.Chart.image
modülü, Image
nesnelerini bölgelere göre azaltmak ve sonuçlardan grafikler oluşturmak için bir dizi işlev içerir. İşlev seçimi, grafikteki verilerin düzenlenmesini belirler. Yani x ve y ekseni değerlerini ve seriyi neyin tanımladığını belirler. Amacınıza en uygun işlevi ve grafik türünü belirlemek için aşağıdaki işlev açıklamalarını ve örnekleri kullanın.
Grafik işlevleri
Her işlevin, görüntü bölgesi azaltma sonuçlarını bir grafikte nasıl düzenlediğini (ör. x değerlerini, y değerlerini ve serileri hangi öğelerin tanımladığını) anlamak için aşağıdaki nokta gösterimi diyagramlarını görsel bir kılavuz olarak kullanın.
Azaltma bölgeleri, x ekseni boyunca çizilir ve seçilen bir özellik özelliğinin değerlerine göre etiketlenir. Seriler, bölge azaltma sonuçları y ekseni boyunca çizilen bant adlarıyla tanımlanır.
Bantlar x ekseni boyunca çizilir. Seriler, bir özellik mülkünün değerlerine göre etiketlenir. İlgili seri özelliklerinin geometrisi tarafından tanımlanan bölgenin azaltılması y ekseni boyunca çizilir.
Veri bantları x ekseni boyunca çizilir. Seriler, sınıf aralığındaki benzersiz değerlerle temsil edilir. Y ekseni konumu, her seriyi oluşturan pikseller için bölge azaltma sonuçlarına göre belirlenir.
Seçilen bantların değerleri için sıklık histogramı.
- X ekseni: Seçilen bantların değerleri için histogram paketleri
- Y ekseni: Her histogram paketi için uygun piksellerin sıklığı
Örnek veriler
Aşağıdaki örneklerde, görüntü verilerinin azaltılacağı bölgeleri tanımlayan üç ekolojik bölge özelliğinden oluşan bir FeatureCollection
kullanılmaktadır. Image
verileri, bantların aylık iklim değişkenlerini tanımladığı PRISM iklim normalleridir. Örneğin, Temmuz ayındaki yağış miktarı veya Ocak ayının ortalama sıcaklığı.
Bu öğenin nasıl oluşturulduğunu öğrenin.
ui.Chart.image.byRegion
Sütun grafik
Bu örnekte, aylık ortalama sıcaklığı temsil eden görüntü bantları, üç ekolojik bölgenin her birini kesiştiği pikseller arasındaki ortalamaya indirgenir. Sonuçlar, ekolojik bölgeye göre aylık sütunlar halinde gösterilir. Sütun yüksekliği, ilgili aylık ortalama sıcaklığı gösterir.
Kod Düzenleyici (JavaScript)
// Import the example feature collection. var ecoregions = ee.FeatureCollection('projects/google/charts_feature_example'); // Load PRISM climate normals image collection; convert images to bands. var normClim = ee.ImageCollection('OREGONSTATE/PRISM/Norm81m').toBands(); // Define the chart and print it to the console. var chart = ui.Chart.image .byRegion({ image: normClim.select('[0-9][0-9]_tmean'), regions: ecoregions, reducer: ee.Reducer.mean(), scale: 500, xProperty: 'label' }) .setSeriesNames([ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]) .setChartType('ColumnChart') .setOptions({ title: 'Average Monthly Temperature by Ecoregion', hAxis: {title: 'Ecoregion', titleTextStyle: {italic: false, bold: true}}, vAxis: { title: 'Temperature (°C)', titleTextStyle: {italic: false, bold: true} }, colors: [ '604791', '1d6b99', '39a8a7', '0f8755', '76b349', 'f0af07', 'e37d05', 'cf513e', '96356f', '724173', '9c4f97', '696969' ] }); print(chart);
Çubuk grafik
Önceki sütun grafiği, .setChartType()
girişi 'ColumnChart'
yerine 'BarChart'
olarak değiştirilerek çubuk grafik olarak oluşturulabilir.
var chart = ui.Chart.image .byRegion({ image: normClim.select('[0-9][0-9]_tmean'), regions: ecoregions, reducer: ee.Reducer.mean(), scale: 500, xProperty: 'label' }) .setSeriesNames([ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]) .setChartType('BarChart') .setOptions({ title: 'Average Monthly Temperature by Ecoregion', hAxis: { title: 'Temperature (°C)', titleTextStyle: {italic: false, bold: true} }, vAxis: {title: 'Ecoregion', titleTextStyle: {italic: false, bold: true}}, colors: [ '604791', '1d6b99', '39a8a7', '0f8755', '76b349', 'f0af07', 'e37d05', 'cf513e', '96356f', '724173', '9c4f97', '696969' ] });
Yığınlı sütun grafik
isStacked
grafik seçeneği, grafik sütunlarının yığılmış olup olmadığını belirtir.
Gruplandırma için çeşitli seçenekler sunulur. Aşağıdaki örneklerde 'absolute'
ve 'relative'
seçeneklerinin kullanımı gösterilmektedir.
Mutlak
Mutlak yığılmış çubuk grafik, katkıda bulunan kategorik değişken serisinin artışlarına göre bir sayısal değişkenin toplamını ilişkilendirir. Örneğin, bu örnekte toplam yağış, ekolojik bölgeye göre bir yıl boyunca aylık yağışların birikimi olarak gösterilmektedir. Aylık toplam yağış miktarları, görüntü bantlarından türetilir. Her bant, belirli bir ay için ortalama toplam yağış ızgarasını temsil eder. Bu ızgara, üç ekolojik bölgenin her birini kesiştiği piksellerin ortalamasına indirgenir. Sonuçları mutlak değerler olarak biçimlendirmek için isStacked
grafik seçeneği 'absolute'
olarak ayarlanır.
Kod Düzenleyici (JavaScript)
// Import the example feature collection. var ecoregions = ee.FeatureCollection('projects/google/charts_feature_example'); // Load PRISM climate normals image collection; convert images to bands. var normClim = ee.ImageCollection('OREGONSTATE/PRISM/Norm81m').toBands(); // Define the chart and print it to the console. var chart = ui.Chart.image .byRegion({ image: normClim.select('[0-9][0-9]_ppt'), regions: ecoregions, reducer: ee.Reducer.mean(), scale: 500, xProperty: 'label' }) .setSeriesNames([ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]) .setChartType('ColumnChart') .setOptions({ title: 'Average Monthly Precipitation by Ecoregion', hAxis: {title: 'Ecoregion', titleTextStyle: {italic: false, bold: true}}, vAxis: { title: 'Precipitation (mm)', titleTextStyle: {italic: false, bold: true} }, colors: [ '604791', '1d6b99', '39a8a7', '0f8755', '76b349', 'f0af07', 'e37d05', 'cf513e', '96356f', '724173', '9c4f97', '696969' ], isStacked: 'absolute' }); print(chart);
Akraba
Önceki mutlak yığılmış çubuk grafiği'ni, isStacked
grafik seçeneğini 'absolute'
yerine 'relative'
olarak değiştirerek göreceli yığılmış çubuk grafiğe dönüştürün. Göreceli yığılmış çubuk grafik, katkıda bulunan kategorik değişken serisinin oranını bir sayısal değişkenin toplamına bağlar.
Örneğin, bu örnekte aylık yağış, eko bölgeye göre yıllık toplam yağış oranında gösterilmektedir.
var chart = ui.Chart.image .byRegion({ image: normClim.select('[0-9][0-9]_ppt'), regions: ecoregions, reducer: ee.Reducer.mean(), scale: 500, xProperty: 'label' }) .setSeriesNames([ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]) .setChartType('ColumnChart') .setOptions({ title: 'Average Monthly Precipitation by Ecoregion', hAxis: {title: 'Ecoregion', titleTextStyle: {italic: false, bold: true}}, vAxis: { title: 'Precipitation (mm)', titleTextStyle: {italic: false, bold: true} }, colors: [ '604791', '1d6b99', '39a8a7', '0f8755', '76b349', 'f0af07', 'e37d05', 'cf513e', '96356f', '724173', '9c4f97', '696969' ], isStacked: 'relative' });
Dağılım grafiği
Colorado eyaletinde rastgele seçilen bir konum grubu için Ocak ve Temmuz ayının ortalama sıcaklıkları, yüksekliğe göre işlenir. DEM, geometri ve yükseklik mülkü içeren bir FeatureCollection
döndüren sample
işlevi kullanılarak örneklenir. Elde edilen FeatureCollection
, ui.Chart.image.byRegion
işlevinin regions
parametresinin bağımsız değişkeni olarak kullanılır.
Seriler, giriş normal iklim resminin seçili bantlarına göre tanımlanır.
Kod Düzenleyici (JavaScript)
// Load SRTM elevation data. var elev = ee.Image('CGIAR/SRTM90_V4').select('elevation'); // Subset Colorado from the TIGER States feature collection. var colorado = ee.FeatureCollection('TIGER/2018/States') .filter(ee.Filter.eq('NAME', 'Colorado')); // Draw a random sample of elevation points from within Colorado. var samp = elev.sample( {region: colorado, scale: 30, numPixels: 500, geometries: true}); // Load PRISM climate normals image collection; convert images to bands. var normClim = ee.ImageCollection('OREGONSTATE/PRISM/Norm81m').toBands(); // Define the chart and print it to the console. var chart = ui.Chart.image .byRegion({ image: normClim.select(['01_tmean', '07_tmean']), regions: samp, reducer: ee.Reducer.mean(), scale: 500, xProperty: 'elevation' }) .setSeriesNames(['Jan', 'Jul']) .setChartType('ScatterChart') .setOptions({ title: 'Average Monthly Colorado Temperature by Elevation', hAxis: { title: 'Elevation (m)', titleTextStyle: {italic: false, bold: true} }, vAxis: { title: 'Temperature (°C)', titleTextStyle: {italic: false, bold: true} }, pointSize: 4, dataOpacity: 0.6, colors: ['1d6b99', 'cf513e'], }); print(chart);
Karma grafik
Bir ee.FeatureCollection
içindeki üç eko bölge için Haziran ayına ait ortalama sıcaklık ve yağış değerleri noktayla gösterilir. Sonuçlar, her bandın aylık yağış ve sıcaklığı açıklayan normal iklim ızgaraları olduğu bir görüntünün bölge azaltmasından elde edilir. Haziran ayı sıcaklığını ve yağış miktarını gösteren bantlar alt kümedir. Yağış ve sıcaklık farklı birimlerde olduğundan series
ve vAxes
seçenekleri ayarlanarak iki y ekseni kullanılır. Hangi değişkenin sağ ve sol y eksenine çizileceğini tanımlamak için series.targetAxisIndex
seçeneğinin kullanıldığını unutmayın. İki değişkenin farklı birimlere sahip olduğunu daha kolay ayırt etmek için serilere özgü semboller (noktalar ve sütunlar) kullanılır.
Kod Düzenleyici (JavaScript)
// Import the example feature collection. var ecoregions = ee.FeatureCollection('projects/google/charts_feature_example'); // Load PRISM climate normals image collection; convert images to bands. var normClim = ee.ImageCollection('OREGONSTATE/PRISM/Norm81m').toBands(); // Define the chart and print it to the console. var chart = ui.Chart.image .byRegion({ image: normClim.select(['06_tmean', '06_ppt']), regions: ecoregions, reducer: ee.Reducer.mean(), scale: 500, xProperty: 'label' }) .setSeriesNames(['Precipitation', 'Temperature']) .setChartType('ColumnChart') .setOptions({ title: 'Average June Temperature and Precipitation by Ecoregion', series: { 0: {targetAxisIndex: 1, type: 'bar', color: '1d6b99'}, 1: { targetAxisIndex: 0, type: 'line', lineWidth: 0, pointSize: 10, color: 'e37d05' } }, hAxis: {title: 'Ecoregion', titleTextStyle: {italic: false, bold: true}}, vAxes: { 0: { title: 'Temperature (°C)', baseline: 0, titleTextStyle: {italic: false, bold: true, color: 'e37d05'} }, 1: { title: 'Precipitation (mm)', titleTextStyle: {italic: false, bold: true, color: '1d6b99'} }, }, bar: {groupWidth: '40%'}, }); print(chart);
ui.Chart.image.regions
Örnek kurulum
ui.Chart.image.regions
işlevi, sayısal değerler atayarak x eksenindeki bant adlarının etiketini ve sırasını kontrol etmenize olanak tanıyan bir liste kabul eder. Aşağıdaki grafiklerde, bant adlarını ay etiketleri olarak ayarlamak ve bunları aylık ortalama yağış miktarına göre kronolojik sıraya koymak için bu seçenek kullanılır.
Sütun grafik
Bu grafikte, üç ekolojik bölge için aylık toplam ortalama yağış miktarı gösterilmektedir.
Sonuçlar, her bandın belirli bir ay için ortalama toplam yağış ızgarasıdır. Bantlar x ekseni boyunca çizilir ve bölgeler seriyi tanımlar. X ekseninin özel düzenlenmesi için xLabels
ve ticks
grafik seçeneklerinin girişlerini tanımlamak üzere kullanılan istemci tarafı işlemleri dikkate alın. setOptions
işlevine sağlanan seçenekler istemci tarafı nesneler olması gerektiğinden istemci işlemleri gereklidir (farklılığı anlamak için İstemci ve sunucu bölümüne bakın). Çubuk grafiğe dönüştürmek için .setChartType()
girişi olarak 'BarChart'
kullanın.
Kod Düzenleyici (JavaScript)
// Import the example feature collection. var ecoregions = ee.FeatureCollection('projects/google/charts_feature_example'); // Load PRISM climate normals image collection, convert images to bands, and // subset precipitation bands. var precip = ee.ImageCollection('OREGONSTATE/PRISM/Norm81m') .toBands() .select('[0-9][0-9]_ppt'); // Define a dictionary that associates band names with values and labels. var precipInfo = { '01_ppt': {v: 1, f: 'Jan'}, '02_ppt': {v: 2, f: 'Feb'}, '03_ppt': {v: 3, f: 'Mar'}, '04_ppt': {v: 4, f: 'Apr'}, '05_ppt': {v: 5, f: 'May'}, '06_ppt': {v: 6, f: 'Jun'}, '07_ppt': {v: 7, f: 'Jul'}, '08_ppt': {v: 8, f: 'Aug'}, '09_ppt': {v: 9, f: 'Sep'}, '10_ppt': {v: 10, f: 'Oct'}, '11_ppt': {v: 11, f: 'Nov'}, '12_ppt': {v: 12, f: 'Dec'} }; // Organize precipitation information into objects for defining x values and // their tick labels. Note that chart options provided to the .setOptions() // function must be client-side objects, which is why a client-side for // loop is used to iteratively populate lists from the above dictionary. var xPropVals = []; // List to codify x-axis band names as values. var xPropLabels = []; // Holds dictionaries that label codified x-axis values. for (var key in precipInfo) { xPropVals.push(precipInfo[key].v); xPropLabels.push(precipInfo[key]); } // Define the chart and print it to the console. var chart = ui.Chart.image .regions({ image: precip, regions: ecoregions, reducer: ee.Reducer.mean(), scale: 5e3, seriesProperty: 'label', xLabels: xPropVals }) .setChartType('ColumnChart') .setOptions({ title: 'Average Ecoregion Precipitation by Month', hAxis: { title: 'Month', titleTextStyle: {italic: false, bold: true}, ticks: xPropLabels }, vAxis: { title: 'Precipitation (mm)', titleTextStyle: {italic: false, bold: true} }, colors: ['f0af07', '0f8755', '76b349'], }); print(chart);
Çizgi grafik
Önceki sütun grafiği, .setChartType()
girişi 'ColumnChart'
yerine 'LineChart'
olarak değiştirilerek çizgi grafik olarak oluşturulabilir.
var chart = ui.Chart.image .regions({ image: precip, regions: ecoregions, reducer: ee.Reducer.mean(), scale: 500, seriesProperty: 'label', xLabels: xPropVals }) .setChartType('LineChart') .setOptions({ title: 'Average Ecoregion Precipitation by Month', hAxis: { title: 'Month', titleTextStyle: {italic: false, bold: true}, ticks: xPropLabels }, vAxis: { title: 'Precipitation (mm)', titleTextStyle: {italic: false, bold: true} }, colors: ['f0af07', '0f8755', '76b349'], lineSize: 5 });
Alan grafiği
Önceki sütun grafiği, .setChartType()
girişi 'ColumnChart'
yerine 'AreaChart'
olarak değiştirilerek alan grafiği olarak oluşturulabilir.
var chart = ui.Chart.image .regions({ image: precip, regions: ecoregions, reducer: ee.Reducer.mean(), scale: 500, seriesProperty: 'label', xLabels: xPropVals }) .setChartType('AreaChart') .setOptions({ title: 'Average Ecoregion Precipitation by Month', hAxis: { title: 'Month', titleTextStyle: {italic: false, bold: true}, ticks: xPropLabels }, vAxis: { title: 'Precipitation (mm)', titleTextStyle: {italic: false, bold: true} }, colors: ['f0af07', '0f8755', '76b349'], lineSize: 5 });
Pasta grafik
Aylık ortalama yağış, bir orman eko bölgesinin ortalama yıllık toplam yağış oranının bir oranı olarak gösterilir. Aylık yağış miktarını gösteren görüntü bantları, normal iklim verileri veri kümesinden alt küme olarak alınır ve eko bölgeyle kesişen piksellerin ortalamasına indirilir.
Kod Düzenleyici (JavaScript)
// Import the example feature collection, subset the forest ecoregion. var forest = ee.FeatureCollection('projects/google/charts_feature_example') .filter(ee.Filter.eq('label', 'Forest')); // Load PRISM climate normals image collection, convert images to bands. var normClim = ee.ImageCollection('OREGONSTATE/PRISM/Norm81m').toBands(); // Define x-axis labels to replace default band names. var monthNames = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]; // Define the chart and print it to the console. var chart = ui.Chart.image .regions({ image: normClim.select('[0-9][0-9]_ppt'), regions: forest, reducer: ee.Reducer.mean(), scale: 5e3, seriesProperty: 'label', xLabels: monthNames }) .setChartType('PieChart') .setOptions({ title: 'Average Monthly Precipitation for Forest Ecoregion', colors: [ '604791', '1d6b99', '39a8a7', '0f8755', '76b349', 'f0af07', 'e37d05', 'cf513e', '96356f', '724173', '9c4f97', '696969' ] }); print(chart);
Halka grafik
pieHole
Pasta grafiği örneğini, grafik seçeneğini ayarlayarak halka grafiğe dönüştürün. Başlangıç değerleri olarak 0,4 ve 0,6'yı deneyin.
var chart = ui.Chart.image .regions({ image: normClim.select('[0-9][0-9]_ppt'), regions: forest, reducer: ee.Reducer.mean(), scale: 5e3, seriesProperty: 'label', xLabels: monthNames }) .setChartType('PieChart') .setOptions({ title: 'Average Monthly Precipitation for Forest Ecoregion', colors: [ '604791', '1d6b99', '39a8a7', '0f8755', '76b349', 'f0af07', 'e37d05', 'cf513e', '96356f', '724173', '9c4f97', '696969' ], pieHole: 0.4 });
ui.Chart.image.byClass
Çizgi grafik
ui.Chart.image.byClass
işlevi, "sınıf bandı"nın sınıflandırılmış bölgelerindeki pikseller için bant değeri istatistiklerini noktayla gösterir. Bu örnekte, üç ekolojik bölgenin spektral profilini görüntülemek için kullanılmıştır. Eko bölge özellikleri rasterleştirilir ve MODIS yüzey yansıması (SR) resmine bant olarak eklenir. Her eko bölge sınıfı ve yansıma bandı için ilgili piksel ortalaması hesaplanır ve y eksenine çizilir. MODIS SR bantlarının merkez dalga boyları, x ekseni işaretlerini ve etiketlerini tanımlar. curveType
çizgi grafiği seçeneğinin, çizgilerin yumuşatılması için 'function'
olarak ayarlandığını unutmayın.
Kod Düzenleyici (JavaScript)
// Import the example feature collection. var ecoregions = ee.FeatureCollection('projects/google/charts_feature_example'); // Convert ecoregion feature collection to a classified image. var regionsBand = ecoregions .reduceToImage({properties: ['value'], reducer: ee.Reducer.first()}) .rename('class'); // Define a MODIS surface reflectance composite. var modisSr = ee.ImageCollection('MODIS/006/MOD09A1') .filter(ee.Filter.date('2018-06-01', '2018-09-01')) .select('sur_refl_b0[0-7]') .mean(); // Reorder reflectance bands by ascending wavelength and // add the classified ecoregions image as a band to the SR collection and var modisSrClass = modisSr.select([2, 3, 0, 1, 4, 5, 6]).addBands(regionsBand); // Define a list of MODIS SR wavelengths for x-axis labels. var wavelengths = [469, 555, 655, 858, 1240, 1640, 2130]; // Define the chart and print it to the console. var chart = ui.Chart.image .byClass({ image: modisSrClass, classBand: 'class', region: ecoregions, reducer: ee.Reducer.mean(), scale: 500, classLabels: ['Desert', 'Forest', 'Grassland'], xLabels: wavelengths }) .setChartType('ScatterChart') .setOptions({ title: 'Ecoregion Spectral Signatures', hAxis: { title: 'Wavelength (nm)', titleTextStyle: {italic: false, bold: true}, viewWindow: {min: wavelengths[0], max: wavelengths[6]} }, vAxis: { title: 'Reflectance (x1e4)', titleTextStyle: {italic: false, bold: true} }, colors: ['f0af07', '0f8755', '76b349'], pointSize: 0, lineSize: 5, curveType: 'function' }); print(chart);
ui.Chart.image.histogram
Üç MODIS yüzey yansıma bandı için ABD, Utah, Salt Lake City'yi çevreleyen bir bölgedeki piksel değerlerinin histogramı gösterilmektedir.
Kod Düzenleyici (JavaScript)
// Define a MODIS surface reflectance composite. var modisSr = ee.ImageCollection('MODIS/006/MOD09A1') .filter(ee.Filter.date('2018-06-01', '2018-09-01')) .select(['sur_refl_b01', 'sur_refl_b02', 'sur_refl_b06']) .mean(); // Define a region to calculate histogram for. var histRegion = ee.Geometry.Rectangle([-112.60, 40.60, -111.18, 41.22]); // Define the chart and print it to the console. var chart = ui.Chart.image.histogram({image: modisSr, region: histRegion, scale: 500}) .setSeriesNames(['Red', 'NIR', 'SWIR']) .setOptions({ title: 'MODIS SR Reflectance Histogram', hAxis: { title: 'Reflectance (x1e4)', titleTextStyle: {italic: false, bold: true}, }, vAxis: {title: 'Count', titleTextStyle: {italic: false, bold: true}}, colors: ['cf513e', '1d6b99', 'f0af07'] }); print(chart);