PHP'de Sunum Grafiklerini Biçimlendirme

Genel Bakış

Bu makale, Aspose.Slides kullanarak PowerPoint sunumlarında grafiklerin nasıl biçimlendirileceğini açıklar. Eksenler, ızgara çizgileri, başlıklar, açıklamalar, çizim alanı ve duvar dolgu gibi temel grafik öğelerinin nasıl özelleştirileceğini göstererek grafik verilerinin görünümünü ve okunabilirliğini artırır.

Ayrıca, grafik metni için yazı tipi özelliklerini ayarlamayı, grafik verilerine önceden tanımlı ve özel sayısal biçimler uygulamayı ve grafik alanı için yuvarlatılmış köşeleri etkinleştirmeyi gösterir. Bu örnekler, bir sunumdaki grafiklerin hem görsel stilini hem de veri sunumunu nasıl kontrol edebileceğinizi gösterir.

Grafik Varlıklarını Biçimlendirme

Aspose.Slides for PHP via Java, geliştiricilerin sıfırdan özel grafikler eklemesine olanak tanır. Bu makale, grafik kategori ve değer ekseni dahil olmak üzere farklı grafik varlıklarını nasıl biçimlendireceğinizi açıklar.

Aspose.Slides for PHP via Java, farklı grafik varlıklarını yönetmek ve özelleştirilmiş değerlerle biçimlendirmek için basit bir API sağlar:

  1. Bir Presentation sınıfının bir örneğini oluşturun.
  2. Bir slaydın referansını indeksine göre alın.
  3. İstenilen türden bir grafik ekleyin (bu örnekte ChartType::LineWithMarkers kullanılacaktır).
  4. Grafik Değer Ekseni’ne erişin ve aşağıdaki özellikleri ayarlayın:
    1. Değer Ekseni Büyük Izgara çizgileri için Satır biçimi ayarlama
    2. Değer Ekseni Küçük Izgara çizgileri için Satır biçimi ayarlama
    3. Değer Ekseni için Sayı Biçimi ayarlama
    4. Değer Ekseni için Min, Max, Büyük ve Küçük birimler ayarlama
    5. Değer Ekseni verileri için Metin Özellikleri ayarlama
    6. Değer Ekseni için Başlık ayarlama
    7. Değer Ekseni için Satır Biçimi ayarlama
  5. Grafik Kategori Ekseni’ne erişin ve aşağıdaki özellikleri ayarlayın:
    1. Kategori Ekseni Büyük Izgara çizgileri için Satır biçimi ayarlama
    2. Kategori Ekseni Küçük Izgara çizgileri için Satır biçimi ayarlama
    3. Kategori Ekseni verileri için Metin Özellikleri ayarlama
    4. Kategori Ekseni için Başlık ayarlama
    5. Kategori Ekseni için Etiket Konumlandırma ayarlama
    6. Kategori Ekseni etiketleri için Dönme Açısı ayarlama
  6. Grafik Açıklaması’na erişin ve Metin Özellikleri‘ni ayarlayın
  7. Grafik açıklamalarını grafikle çakışmayacak şekilde gösterin
  8. Grafik İkincil Değer Ekseni‘ne erişin ve aşağıdaki özellikleri ayarlayın:
    1. İkincil Değer Ekseni‘ni etkinleştir
    2. İkincil Değer Ekseni için Satır Biçimi ayarlama
    3. İkincil Değer Ekseni için Sayı Biçimi ayarlama
    4. İkincil Değer Ekseni için Min, Max, Büyük ve Küçük birimler ayarlama
  9. İlk grafik serisini İkincil Değer Ekseni üzerinde çizin
  10. Grafiğin arka duvar dolgu rengini ayarlayın
  11. Grafiğin çizim alanı dolgu rengini ayarlayın
  12. Değiştirilmiş sunumu bir PPTX dosyasına yazın
  # Presentation sınıfının bir örneğini oluştur
  $pres = new Presentation();
  try {
    # İlk slayta erişme
    $slide = $pres->getSlides()->get_Item(0);
    # Örnek grafiği ekleme
    $chart = $slide->getShapes()->addChart(ChartType::LineWithMarkers, 50, 50, 500, 400);
    # Grafik Başlığını Ayarlama
    $chart->hasTitle();
    $chart->getChartTitle()->addTextFrameForOverriding("");
    $chartTitle = $chart->getChartTitle()->getTextFrameForOverriding()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    $chartTitle->setText("Sample Chart");
    $chartTitle->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $chartTitle->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GRAY);
    $chartTitle->getPortionFormat()->setFontHeight(20);
    $chartTitle->getPortionFormat()->setFontBold(NullableBool::True);
    $chartTitle->getPortionFormat()->setFontItalic(NullableBool::True);
    # Değer ekseni için büyük ızgara çizgileri biçimini ayarlama
    $chart->getAxes()->getVerticalAxis()->getMajorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
    $chart->getAxes()->getVerticalAxis()->getMajorGridLinesFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    $chart->getAxes()->getVerticalAxis()->getMajorGridLinesFormat()->getLine()->setWidth(5);
    $chart->getAxes()->getVerticalAxis()->getMajorGridLinesFormat()->getLine()->setDashStyle(LineDashStyle->DashDot);
    # Değer ekseni için küçük ızgara çizgileri biçimini ayarlama
    $chart->getAxes()->getVerticalAxis()->getMinorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
    $chart->getAxes()->getVerticalAxis()->getMinorGridLinesFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
    $chart->getAxes()->getVerticalAxis()->getMinorGridLinesFormat()->getLine()->setWidth(3);
    # Değer ekseni sayı biçimini ayarlama
    $chart->getAxes()->getVerticalAxis()->isNumberFormatLinkedToSource();
    $chart->getAxes()->getVerticalAxis()->setDisplayUnit(DisplayUnitType::Thousands);
    $chart->getAxes()->getVerticalAxis()->setNumberFormat("0.0%");
    # Grafiğin maksimum, minimum değerlerini ayarlama
    $chart->getAxes()->getVerticalAxis()->isAutomaticMajorUnit();
    $chart->getAxes()->getVerticalAxis()->isAutomaticMaxValue();
    $chart->getAxes()->getVerticalAxis()->isAutomaticMinorUnit();
    $chart->getAxes()->getVerticalAxis()->isAutomaticMinValue();
    $chart->getAxes()->getVerticalAxis()->setMaxValue(15.0);
    $chart->getAxes()->getVerticalAxis()->setMinValue(-2.0);
    $chart->getAxes()->getVerticalAxis()->setMinorUnit(0.5);
    $chart->getAxes()->getVerticalAxis()->setMajorUnit(2.0);
    # Değer Ekseni Metin Özelliklerini Ayarlama
    $txtVal = $chart->getAxes()->getVerticalAxis()->getTextFormat()->getPortionFormat();
    $txtVal->setFontBold(NullableBool::True);
    $txtVal->setFontHeight(16);
    $txtVal->setFontItalic(NullableBool::True);
    $txtVal->getFillFormat()->setFillType(FillType::Solid);
    $txtVal->getFillFormat()->getSolidFillColor()->setColor(new java("java.awt.Color", PresetColor->DarkGreen));
    $txtVal->setLatinFont(new FontData("Times New Roman"));
    # Değer ekseni başlığını ayarlama
    $chart->getAxes()->getVerticalAxis()->hasTitle();
    $chart->getAxes()->getVerticalAxis()->getTitle()->addTextFrameForOverriding("");
    $valtitle = $chart->getAxes()->getVerticalAxis()->getTitle()->getTextFrameForOverriding()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    $valtitle->setText("Primary Axis");
    $valtitle->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $valtitle->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GRAY);
    $valtitle->getPortionFormat()->setFontHeight(20);
    $valtitle->getPortionFormat()->setFontBold(NullableBool::True);
    $valtitle->getPortionFormat()->setFontItalic(NullableBool::True);
    # Kategori ekseni için büyük ızgara çizgileri biçimini ayarlama
    $chart->getAxes()->getHorizontalAxis()->getMajorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
    $chart->getAxes()->getHorizontalAxis()->getMajorGridLinesFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
    $chart->getAxes()->getHorizontalAxis()->getMajorGridLinesFormat()->getLine()->setWidth(5);
    # Kategori ekseni için küçük ızgara çizgileri biçimini ayarlama
    $chart->getAxes()->getHorizontalAxis()->getMinorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
    $chart->getAxes()->getHorizontalAxis()->getMinorGridLinesFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->YELLOW);
    $chart->getAxes()->getHorizontalAxis()->getMinorGridLinesFormat()->getLine()->setWidth(3);
    # Kategori Ekseni Metin Özelliklerini Ayarlama
    $txtCat = $chart->getAxes()->getHorizontalAxis()->getTextFormat()->getPortionFormat();
    $txtCat->setFontBold(NullableBool::True);
    $txtCat->setFontHeight(16);
    $txtCat->setFontItalic(NullableBool::True);
    $txtCat->getFillFormat()->setFillType(FillType::Solid);
    $txtCat->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    $txtCat->setLatinFont(new FontData("Arial"));
    # Kategori Başlığını Ayarlama
    $chart->getAxes()->getHorizontalAxis()->hasTitle();
    $chart->getAxes()->getHorizontalAxis()->getTitle()->addTextFrameForOverriding("");
    $catTitle = $chart->getAxes()->getHorizontalAxis()->getTitle()->getTextFrameForOverriding()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    $catTitle->setText("Sample Category");
    $catTitle->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $catTitle->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GRAY);
    $catTitle->getPortionFormat()->setFontHeight(20);
    $catTitle->getPortionFormat()->setFontBold(NullableBool::True);
    $catTitle->getPortionFormat()->setFontItalic(NullableBool::True);
    # Kategori ekseni etiket konumunu ayarlama
    $chart->getAxes()->getHorizontalAxis()->setTickLabelPosition(TickLabelPositionType::Low);
    # Kategori ekseni etiket dönüş açısını ayarlama
    $chart->getAxes()->getHorizontalAxis()->setTickLabelRotationAngle(45);
    # Açıklama Metin Özelliklerini Ayarlama
    $txtleg = $chart->getLegend()->getTextFormat()->getPortionFormat();
    $txtleg->setFontBold(NullableBool::True);
    $txtleg->setFontHeight(16);
    $txtleg->setFontItalic(NullableBool::True);
    $txtleg->getFillFormat()->setFillType(FillType::Solid);
    $txtleg->getFillFormat()->getSolidFillColor()->setColor(new java("java.awt.Color", PresetColor->DarkRed));
    # Grafiğin açıklamaları çakışmadan gösterilsin
    $chart->getLegend()->setOverlay(true);
    # chart.ChartData.Series[0].PlotOnSecondAxis=true;
    $chart->getChartData()->getSeries()->get_Item(0)->setPlotOnSecondAxis(true);
    # İkincil değer eksenini ayarlama
    $chart->getAxes()->getSecondaryVerticalAxis()->isVisible();
    $chart->getAxes()->getSecondaryVerticalAxis()->getFormat()->getLine()->setStyle(LineStyle->ThickBetweenThin);
    $chart->getAxes()->getSecondaryVerticalAxis()->getFormat()->getLine()->setWidth(20);
    # İkincil değer ekseni sayı biçimini ayarlama
    $chart->getAxes()->getSecondaryVerticalAxis()->isNumberFormatLinkedToSource();
    $chart->getAxes()->getSecondaryVerticalAxis()->setDisplayUnit(DisplayUnitType::Hundreds);
    $chart->getAxes()->getSecondaryVerticalAxis()->setNumberFormat("0.0%");
    # Grafiğin maksimum, minimum değerlerini ayarlama
    $chart->getAxes()->getSecondaryVerticalAxis()->isAutomaticMajorUnit();
    $chart->getAxes()->getSecondaryVerticalAxis()->isAutomaticMaxValue();
    $chart->getAxes()->getSecondaryVerticalAxis()->isAutomaticMinorUnit();
    $chart->getAxes()->getSecondaryVerticalAxis()->isAutomaticMinValue();
    $chart->getAxes()->getSecondaryVerticalAxis()->setMaxValue(20.0);
    $chart->getAxes()->getSecondaryVerticalAxis()->setMinValue(-5.0);
    $chart->getAxes()->getSecondaryVerticalAxis()->setMinorUnit(0.5);
    $chart->getAxes()->getSecondaryVerticalAxis()->setMajorUnit(2.0);
    # Grafiğin arka duvar rengini ayarlama
    $chart->getBackWall()->setThickness(1);
    $chart->getBackWall()->getFormat()->getFill()->setFillType(FillType::Solid);
    $chart->getBackWall()->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->ORANGE);
    $chart->getFloor()->getFormat()->getFill()->setFillType(FillType::Solid);
    $chart->getFloor()->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
    # Çizim alanı rengini ayarlama
    $chart->getPlotArea()->getFormat()->getFill()->setFillType(FillType::Solid);
    $chart->getPlotArea()->getFormat()->getFill()->getSolidFillColor()->setColor(new java("java.awt.Color", PresetColor->LightCyan));
    # Sunumu Kaydet
    $pres->save("FormattedChart.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Grafik İçin Yazı Tipi Özelliklerini Ayarlama

Aspose.Slides for PHP via Java, grafik için yazı tipiyle ilgili özellikleri ayarlama desteği sağlar. Grafik için yazı tipi özelliklerini ayarlamak için aşağıdaki adımları izleyin.

  • Bir Presentation sınıfı nesnesi oluşturun.
  • Slayta bir grafik ekleyin.
  • Yazı tipi yüksekliğini ayarlayın.
  • Değiştirilmiş sunumu kaydedin.

Aşağıda örnek bir örnek verilmiştir.

  # Presentation sınıfının bir örneğini oluştur
  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 500, 400);
    $chart->getTextFormat()->getPortionFormat()->setFontHeight(20);
    $chart->getChartData()->getSeries()->get_Item(0)->getLabels()->getDefaultDataLabelFormat()->setShowValue(true);
    $pres->save("FontPropertiesForChart.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Sayısal Biçimi Ayarlama

Aspose.Slides for PHP via Java, grafik veri biçimini yönetmek için basit bir API sağlar:

  1. Bir Presentation sınıfının bir örneğini oluşturun.
  2. Bir slaydın referansını indeksine göre alın.
  3. İstenilen türden bir grafik ekleyin (bu örnek ChartType::ClusteredColumn kullanır).
  4. Olabilir önceden tanımlı sayı biçimlerinden birini ayarlayın.
  5. Her grafik serisindeki grafik veri hücresinde dolaşarak grafik veri sayı biçimini ayarlayın.
  6. Sunumu kaydedin.
  7. Özel sayı biçimini ayarlayın.
  8. Her grafik serisindeki veri hücresinde dolaşarak farklı bir sayı biçimi ayarlayın.
  9. Sunumu kaydedin.
  # Presentation sınıfının bir örneğini oluştur
  $pres = new Presentation();
  try {
    # İlk sunum slaytına eriş
    $slide = $pres->getSlides()->get_Item(0);
    # Varsayılan gruplanmış sütun grafiği ekleme
    $chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 500, 400);
    # Grafik serileri koleksiyonuna erişme
    $series = $chart->getChartData()->getSeries();
    # Her grafik serisi üzerinden dolaşma
    foreach($series as $ser) {
      # Serideki her veri hücresi üzerinden dolaşma
      foreach($ser->getDataPoints() as $cell) {
        # Sayı biçimini ayarlama
        $cell->getValue()->getAsCell()->setPresetNumberFormat(10);// 0.00%
      }
    }
    # Sunumu kaydetme
    $pres->save("PresetNumberFormat.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Kullanılabilecek olası önceden tanımlı sayı biçimi değerleri, ilgili indeksleriyle birlikte aşağıda verilmiştir:

0 Genel
1 0
2 0.00
3 #,##0
4 #,##0.00
5 $#,##0;$-#,##0
6 $#,##0;Red$-#,##0
7 $#,##0.00;$-#,##0.00
8 $#,##0.00;Red$-#,##0.00
9 0%
10 0.00%
11 0.00E+00
12 # ?/?
13 # /
14 m/d/yy
15 d-mmm-yy
16 d-mmm
17 mmm-yy
18 h:mm AM/PM
19 h:mm:ss AM/PM
20 h:mm
21 h:mm:ss
22 m/d/yy h:mm
37 #,##0;-#,##0
38 #,##0;Red-#,##0
39 #,##0.00;-#,##0.00
40 #,##0.00;Red-#,##0.00
41 _ * #,##0_ ;_ * “_ ;_ @_
42 _ $* #,##0_ ;_ $* “_ ;_ @_
43 _ * #,##0.00_ ;_ * “??_ ;_ @_
44 _ $* #,##0.00_ ;_ $* “??_ ;_ @_
45 mm:ss
46 h:mm:ss
47 mm:ss.0
48 ##0.0E+00
49 @

Grafik Alanı Yuvarlatılmış Kenarlar Ayarlama

Aspose.Slides for PHP via Java, grafik alanını ayarlama desteği sağlar. hasRoundedCorners ve setRoundedCorners yöntemleri Chart sınıfına eklenmiştir.

  1. Bir Presentation sınıfı nesnesi oluşturun.
  2. Slayta bir grafik ekleyin.
  3. Grafiğin dolgu tipini ve dolgu rengini ayarlayın.
  4. Yuvarlatılmış köşe özelliğini True olarak ayarlayın.
  5. Değiştirilmiş sunumu kaydedin.

Aşağıda örnek bir örnek verilmiştir.

  # Presentation sınıfının bir örneğini oluştur
  $pres = new Presentation();
  try {
    $slide = $pres->getSlides()->get_Item(0);
    $chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 20, 100, 600, 400);
    $chart->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
    $chart->getLineFormat()->setStyle(LineStyle->Single);
    $chart->setRoundedCorners(true);
    $pres->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

SSS

Sütunlar/alanlar için yarı saydam dolgu ayarlarken kenarı opak tutabilir miyim?

Evet. Dolgu şeffaflığı ve kenar ayrı ayrı yapılandırılır. Bu, yoğun görselleştirmelerde ızgara ve verilerin okunabilirliğini artırmak için yararlıdır.

Etiketler çakıştığında nasıl başa çıkabilirim?

Yazı tipi boyutunu azaltın, gereksiz etiket bileşenlerini devre dışı bırakın (örneğin, kategorileri), etiket ofsetini/konumunu ayarlayın, gerekirse yalnızca seçili noktalar için etiketleri gösterin veya biçimi “değer + açıklama” şeklinde değiştirin.

Serilere degrade veya desen dolguları uygulayabilir miyim?

Evet. Hem katı hem de degrade/desen dolgular genellikle mevcuttur. Uygulamada degradeleri sınırlı kullanın ve ızgara ve metinle kontrastı azaltan kombinasyonlardan kaçının.