Android'de Sunumlarda Grafik Veri Serilerini Yönetme

Genel Bakış

Bu makale, Aspose.Slides içinde ChartSeries rolünü açıklamaktadır ve sunumlarda verilerin nasıl yapılandırıldığını ve görselleştirildiğini odaklanmaktadır. Bu nesneler, bir grafikte tek tek veri noktaları, kategoriler ve görünüm parametrelerini tanımlayan temel unsurları sağlar. ChartSeries ile çalışan geliştiriciler, temel veri kaynaklarını sorunsuz bir şekilde entegre edebilir ve bilginin nasıl gösterileceği üzerinde tam kontrol sağlayabilir, böylece içgörü ve analizleri net bir şekilde ileten dinamik, veri odaklı sunumlar oluşturabilir.

Bir seri, bir grafikte çizilen sayıların bir satır veya sütunudur.

chart-series-powerpoint

Grafik Serisi Çakışmasını Ayarlama

IChartSeries.getOverlap yöntemiyle, 2D bir grafikte çubukların ve sütunların ne kadar çakışması gerektiğini belirleyebilirsiniz (aralık: -100 ile 100). Bu özellik, üst seriler grubunun tüm serilerine uygulanır: bu uygun grup özelliğinin bir yansımasıdır. Bu nedenle, bu özellik yalnızca okunabilir.

İstediğiniz çakışma değerini ayarlamak için getParentSeriesGroup().setOverlap() yazma yöntemini kullanın.

  1. Bir Presentation sınıfının örneğini oluşturun.
  2. Bir slayta kümelenmiş sütun grafiği ekleyin.
  3. İlk grafik serisine erişin.
  4. Grafik serisinin ParentSeriesGroup özelliğine erişin ve seri için istediğiniz çakışma değerini ayarlayın.
  5. Değiştirilmiş sunumu bir PPTX dosyasına yazın.

Bu Java kodu, bir grafik serisinin çakışmasını nasıl ayarlayacağınızı gösterir:

Presentation pres = new Presentation();
try {
    // Grafik ekler
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400, true);
    IChartSeriesCollection series = chart.getChartData().getSeries();
    if (series.get_Item(0).getOverlap() == 0)
    {
        // Serinin çakışmasını ayarlar
        series.get_Item(0).getParentSeriesGroup().setOverlap((byte)-30);
    }

    // Sunum dosyasını diske yazar
    pres.save("SetChartSeriesOverlap_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Seri Rengini Değiştir

Aspose.Slides for Android via Java, bir serinin rengini şu şekilde değiştirmenizi sağlar:

  1. Bir Presentation sınıfının örneğini oluşturun.
  2. Slayta bir grafik ekleyin.
  3. Rengini değiştirmek istediğiniz seriye erişin.
  4. İstediğiniz dolgu tipini ve dolgu rengini ayarlayın.
  5. Değiştirilmiş sunumu kaydedin.

Bu Java kodu, bir serinin rengini nasıl değiştireceğinizi gösterir:

Presentation pres = new Presentation("test.pptx");
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Pie, 50, 50, 600, 400);
    IChartDataPoint point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(1);

    point.setExplosion(30);
    point.getFormat().getFill().setFillType(FillType.Solid);
    point.getFormat().getFill().getSolidFillColor().setColor(Color.BLUE);

    pres.save("output.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Seri Kategori Rengini Değiştir

Aspose.Slides for Android via Java, bir seri kategorisinin rengini şu şekilde değiştirmenizi sağlar:

  1. Bir Presentation sınıfının örneğini oluşturun.
  2. Slayta bir grafik ekleyin.
  3. Rengini değiştirmek istediğiniz seri kategorisine erişin.
  4. İstediğiniz dolgu tipini ve dolgu rengini ayarlayın.
  5. Değiştirilmiş sunumu kaydedin.

Bu Java kodu, bir seri kategorisinin rengini nasıl değiştireceğinizi gösterir:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
    IChartDataPoint point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(0);

    point.getFormat().getFill().setFillType(FillType.Solid);
    point.getFormat().getFill().getSolidFillColor().setColor(Color.BLUE);

    pres.save("output.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Seri Adını Değiştir

Varsayılan olarak, bir grafiğin gösterge adları, her sütun veya satırın üzerindeki hücrelerin içeriğidir.

Örnek olarak (örnek görsel),

  • sütunlar Series 1, Series 2, ve Series 3;
  • satırlar Category 1, Category 2, Category 3, ve Category 4.

Aspose.Slides for Android via Java, bir serinin adını grafik verilerinde ve gösterge içinde güncellemenizi veya değiştirmenizi sağlar.

Bu Java kodu, ChartDataWorkbook içindeki bir serinin adını nasıl değiştireceğinizi gösterir:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Column3D, 50, 50, 600, 400, true);

    IChartDataCell seriesCell = chart.getChartData().getChartDataWorkbook().getCell(0, 0, 1);
    seriesCell.setValue("New name");

    pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Bu Java kodu, Series aracılığıyla bir serinin adını gösterge içinde nasıl değiştireceğinizi gösterir:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Column3D, 50, 50, 600, 400, true);
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);

    IStringChartValue name = series.getName();
    name.getAsCells().get_Item(0).setValue("New name");
} finally {
    if (pres != null) pres.dispose();
}

Grafik Serisi Dolgu Rengini Ayarla

Aspose.Slides for Android via Java, bir çizim alanı içinde grafik serileri için otomatik dolgu rengini şu şekilde ayarlamanızı sağlar:

  1. Bir Presentation sınıfının örneğini oluşturun.
  2. İndeksiyle bir slayt referansı alın.
  3. Tercih ettiğiniz türe göre varsayılan verilerle bir grafik ekleyin (aşağıdaki örnekte ChartType.ClusteredColumn kullandık).
  4. Grafik serisine erişin ve dolgu rengini Automatic (Otomatik) olarak ayarlayın.
  5. Sunumu bir PPTX dosyasına kaydedin.

Bu Java kodu, bir grafik serisinin otomatik dolgu rengini nasıl ayarlayacağınızı gösterir:

Presentation pres = new Presentation();
try {
    // Kümelenmiş sütun grafik oluşturur
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 50, 600, 400);

    // Seri dolgu biçimini otomatik olarak ayarlar
    for (int i = 0; i < chart.getChartData().getSeries().size(); i++)
    {
        chart.getChartData().getSeries().get_Item(i).getAutomaticSeriesColor();
    }

    // Sunum dosyasını diske yazar
    pres.save("AutoFillSeries_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Bir Grafik Serisi için Ters Dolgu Rengini Ayarla

Aspose.Slides, bir çizim alanı içinde grafik serileri için ters dolgu rengini şu şekilde ayarlamanızı sağlar:

  1. Bir Presentation sınıfının örneğini oluşturun.
  2. İndeksiyle bir slayt referansı alın.
  3. Tercih ettiğiniz türe göre varsayılan verilerle bir grafik ekleyin (aşağıdaki örnekte ChartType.ClusteredColumn kullandık).
  4. Grafik serisine erişin ve dolgu rengini invert (ters) olarak ayarlayın.
  5. Sunumu bir PPTX dosyasına kaydedin.

Bu Java kodu işlemi göstermektedir:

Color inverColor = Color.RED;
Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 400, 300);
    IChartDataWorkbook workBook = chart.getChartData().getChartDataWorkbook();

    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();

    // Yeni seriler ve kategoriler ekler
    chart.getChartData().getSeries().add(workBook.getCell(0, 0, 1, "Series 1"), chart.getType());
    chart.getChartData().getCategories().add(workBook.getCell(0, 1, 0, "Category 1"));
    chart.getChartData().getCategories().add(workBook.getCell(0, 2, 0, "Category 2"));
    chart.getChartData().getCategories().add(workBook.getCell(0, 3, 0, "Category 3"));

    // İlk grafik serisini alır ve seri verilerini doldurur.
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);
    series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 1, 1, -20));
    series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 2, 1, 50));
    series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 3, 1, -30));
    Color seriesColor = series.getAutomaticSeriesColor();
    series.setInvertIfNegative(true);
    series.getFormat().getFill().setFillType(FillType.Solid);
    series.getFormat().getFill().getSolidFillColor().setColor(seriesColor);
    series.getInvertedSolidFillColor().setColor(inverColor);
    
    pres.save("SetInvertFillColorChart_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Değer Negatif Olduğunda Seriyi Ters Yap

Aspose.Slides, IChartDataPoint.InvertIfNegative ve ChartDataPoint.InvertIfNegative özellikleri aracılığıyla terslemeleri ayarlamanıza izin verir. Bu özellikler kullanılarak bir tersleme ayarlandığında, veri noktası negatif bir değer aldığında renklerini ters çevirir.

Bu Java kodu işlemi göstermektedir:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400, true);
    IChartSeriesCollection series = chart.getChartData().getSeries();
    chart.getChartData().getSeries().clear();

    IChartSeries chartSeries = series.add(chart.getChartData().getChartDataWorkbook().getCell(0, "B1"), chart.getType());
    chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B2", -5));
    chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B3", 3));
    chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B4", -2));
    chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B5", 1));

    chartSeries.setInvertIfNegative(false);

    chartSeries.getDataPoints().get_Item(2).setInvertIfNegative(true);

    pres.save("out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Belirli Nokta Verilerini Temizle

Aspose.Slides for Android via Java, belirli bir grafik serisi için DataPoints verilerini şu şekilde temizlemenizi sağlar:

  1. Bir Presentation sınıfının örneğini oluşturun.
  2. İndeks aracılığıyla bir slayt referansı alın.
  3. İndeks aracılığıyla bir grafik referansı alın.
  4. Tüm grafik DataPoints içinde döngü yapın ve XValue ve YValue değerlerini null olarak ayarlayın.
  5. Belirli grafik serisi için tüm DataPoints öğelerini temizleyin.
  6. Değiştirilmiş sunumu bir PPTX dosyasına yazın.

Bu Java kodu işlemi göstermektedir:

Presentation pres = new Presentation("TestChart.pptx");
try {
    ISlide sl = pres.getSlides().get_Item(0);

    IChart chart = (IChart)sl.getShapes().get_Item(0);

    for (IChartDataPoint dataPoint : chart.getChartData().getSeries().get_Item(0).getDataPoints())
    {
        dataPoint.getXValue().getAsCell().setValue(null);
        dataPoint.getYValue().getAsCell().setValue(null);
    }

    chart.getChartData().getSeries().get_Item(0).getDataPoints().clear();

    pres.save("ClearSpecificChartSeriesDataPointsData.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Seri Boşluk Genişliğini Ayarla

Aspose.Slides for Android via Java, bir serinin GapWidth özelliği aracılığıyla Boşluk Genişliğini şu şekilde ayarlamanızı sağlar:

  1. Bir Presentation sınıfının örneğini oluşturun.
  2. İlk slayta erişin.
  3. Varsayılan verilerle bir grafik ekleyin.
  4. Herhangi bir grafik serisine erişin.
  5. GapWidth özelliğini ayarlayın.
  6. Değiştirilmiş sunumu bir PPTX dosyasına yazın.

Bu Java kodu, bir serinin Boşluk Genişliğini nasıl ayarlayacağınızı gösterir:

// Boş sunum oluşturur 
Presentation pres = new Presentation();
try {
    // Sunumun ilk slaytına erişir
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Varsayılan veriyle bir grafik ekler
    IChart chart = slide.getShapes().addChart(ChartType.StackedColumn, 0, 0, 500, 500);
    
    // Grafik veri sayfasının indeksini ayarlar
    int defaultWorksheetIndex = 0;
    
    // Grafik veri çalışma sayfasını alır
    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
    
    // Seri ekler
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType());
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType());
    
    // Kategoriler ekler
    chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
    chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
    chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));
    
    // İkinci grafik serisini alır
    IChartSeries series = chart.getChartData().getSeries().get_Item(1);
    
    // Seri verilerini doldurur
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60));
    
    // GapWidth değerini ayarlar
    series.getParentSeriesGroup().setGapWidth(50);
    
    // Sunumu diske kaydeder
    pres.save("GapWidth_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

SSS

Tek bir grafik kaç seri içerebilir konusunda bir sınırlama var mı?

Aspose.Slides, eklediğiniz seri sayısında sabit bir sınır koymaz. Pratik üst sınır, grafiğin okunabilirliği ve uygulamanızın sahip olduğu bellekle belirlenir.

Kümedeki sütunlar çok yakına mı yoksa çok uzağa mı?

Bu seri (veya üst seri grubu) için GapWidth ayarını değiştirin. Değeri artırmak sütunlar arasındaki boşluğu genişletirken, değeri azaltmak onları birbirine daha yakın hale getirir.