Μορφοποίηση Διαγραμμάτων Παρουσίασης σε PHP
Επισκόπηση
Αυτό το άρθρο εξηγεί πώς να μορφοποιήσετε διαγράμματα σε παρουσιάσεις PowerPoint χρησιμοποιώντας το Aspose.Slides. Δείχνει πώς να προσαρμόσετε σημαντικά στοιχεία του διαγράμματος, όπως άξονες, γραμμές πλέγματος, τίτλους, υπομνήματα, την περιοχή σχεδίασης και τις γεμίσεις τοίχου, ώστε να βελτιώσετε την εμφάνιση και την αναγνωσιμότητα των δεδομένων του διαγράμματος.
Επίσης, παρουσιάζει πώς να ορίσετε ιδιότητες γραμματοσειράς για το κείμενο του διαγράμματος, να εφαρμόσετε προεπιλεγμένες και προσαρμοσμένες αριθμητικές μορφές στα δεδομένα του διαγράμματος και να ενεργοποιήσετε στρογγυλεμένες γωνίες για την περιοχή του διαγράμματος. Συνολικά, αυτά τα παραδείγματα δείχνουν πώς να ελέγχετε τόσο το οπτικό στυλ όσο και την παρουσίαση των δεδομένων των διαγραμμάτων σε μια παρουσίαση.
Μορφοποίηση Οντοτήτων Διαγράμματος
Aspose.Slides for PHP via Java επιτρέπει στους προγραμματιστές να προσθέτουν προσαρμοσμένα διαγράμματα στις διαφάνειές τους από την αρχή. Αυτό το άρθρο εξηγεί πώς να μορφοποιήσετε διαφορετικές οντότητες διαγράμματος, συμπεριλαμβανομένων των κατηγοριών διαγράμματος και του άξονα τιμών.
Aspose.Slides for PHP via Java παρέχει ένα απλό API για τη διαχείριση διαφορετικών οντοτήτων διαγράμματος και τη μορφοποίησή τους χρησιμοποιώντας προσαρμοσμένες τιμές:
- Δημιουργήστε ένα στιγμιότυπο της κλάσης Presentationclass.
- Αποκτήστε την αναφορά μιας διαφάνειας με τον δείκτη της.
- Προσθέστε ένα διάγραμμα με προεπιλεγμένα δεδομένα μαζί με κάποιον από τους επιθυμητούς τύπους (σε αυτό το παράδειγμα θα χρησιμοποιήσουμε ChartType::LineWithMarkers).
- Προσπελάστε τον Άξονα Τιμών του διαγράμματος και ορίστε τις παρακάτω ιδιότητες:
- Ορισμός Line format για τις κύριες γραμμές πλέγματος του Άξονα Τιμών
- Ορισμός Line format για τις δευτερεύουσες γραμμές πλέγματος του Άξονα Τιμών
- Ορισμός Number Format για τον Άξονα Τιμών
- Ορισμός Min, Max, Major and Minor units για τον Άξονα Τιμών
- Ορισμός Text Properties για τα δεδομένα του Άξονα Τιμών
- Ορισμός Title για τον Άξονα Τιμών
- Ορισμός Line Format για τον Άξονα Τιμών
- Προσπελάστε τον Άξονα Κατηγορίας του διαγράμματος και ορίστε τις παρακάτω ιδιότητες:
- Ορισμός Line format για τις κύριες γραμμές πλέγματος του Άξονα Κατηγορίας
- Ορισμός Line format για τις δευτερεύουσες γραμμές πλέγματος του Άξονα Κατηγορίας
- Ορισμός Text Properties για τα δεδομένα του Άξονα Κατηγορίας
- Ορισμός Title για τον Άξονα Κατηγορίας
- Ορισμός Label Positioning για τον Άξονα Κατηγορίας
- Ορισμός Rotation Angle για τις ετικέτες του Άξονα Κατηγορίας
- Προσπελάστε το Υπόμνημα του διαγράμματος και ορίστε τις Text Properties για αυτό.
- Ρυθμίστε την εμφάνιση των υπομνημάτων του διαγράμματος χωρίς επικάλυψη του διαγράμματος
- Προσπελάστε τον Secondary Value Axis του διαγράμματος και ορίστε τις παρακάτω ιδιότητες:
- Ενεργοποιήστε τον Δευτερεύοντα Value Axis
- Ορισμός Line Format για τον Δευτερεύοντα Άξονα Τιμών
- Ορισμός Number Format για τον Δευτερεύοντα Άξονα Τιμών
- Ορισμός Min, Max, Major and Minor units για τον Δευτερεύοντα Άξονα Τιμών
- Τώρα σχεδιάστε τη πρώτη σειρά διαγράμματος στον Δευτερεύοντα Άξονα Τιμών
- Ορίστε το χρώμα γεμίσματος του πίσω τοίχου του διαγράμματος
- Ορίστε το χρώμα γεμίσματος της περιοχής σχεδίασης του διαγράμματος
- Γράψτε την τροποποιημένη παρουσίαση σε αρχείο PPTX
# Δημιουργία ενός αντικειμένου της κλάσης Presentation
$pres = new Presentation();
try {
# Πρόσβαση στην πρώτη διαφάνεια
$slide = $pres->getSlides()->get_Item(0);
# Προσθήκη του δείγματος διαγράμματος
$chart = $slide->getShapes()->addChart(ChartType::LineWithMarkers, 50, 50, 500, 400);
# Ορισμός Τίτλου Διαγράμματος
$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);
# Ορισμός μορφής κύριων γραμμών πλέγματος για άξονα τιμών
$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);
# Ορισμός μορφής δευτερευουσών γραμμών πλέγματος για άξονα τιμών
$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);
# Ορισμός αριθμητικής μορφής άξονα τιμών
$chart->getAxes()->getVerticalAxis()->isNumberFormatLinkedToSource();
$chart->getAxes()->getVerticalAxis()->setDisplayUnit(DisplayUnitType::Thousands);
$chart->getAxes()->getVerticalAxis()->setNumberFormat("0.0%");
# Ορισμός μέγιστων και ελάχιστων τιμών διαγράμματος
$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);
# Ορισμός ιδιοτήτων κειμένου του άξονα τιμών
$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"));
# Ορισμός τίτλου άξονα τιμών
$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);
# Ορισμός μορφής κύριων γραμμών πλέγματος για άξονα Κατηγορίας
$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);
# Ορισμός μορφής δευτερευουσών γραμμών πλέγματος για άξονα Κατηγορίας
$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);
# Ορισμός ιδιοτήτων κειμένου του άξονα Κατηγορίας
$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"));
# Ορισμός τίτλου Κατηγορίας
$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);
# Ορισμός θέσης ετικέτας άξονα κατηγορίας
$chart->getAxes()->getHorizontalAxis()->setTickLabelPosition(TickLabelPositionType::Low);
# Ορισμός γωνίας περιστροφής ετικέτας άξονα κατηγορίας
$chart->getAxes()->getHorizontalAxis()->setTickLabelRotationAngle(45);
# Ορισμός ιδιοτήτων κειμένου υπομνήματος
$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));
# Ρυθμιση εμφάνισης υπομνήματος διαγράμματος χωρίς επικάλυψη διαγράμματος
$chart->getLegend()->setOverlay(true);
# chart.ChartData.Series[0].PlotOnSecondAxis=true;
$chart->getChartData()->getSeries()->get_Item(0)->setPlotOnSecondAxis(true);
# Ορισμός δευτερεύοντος άξονα τιμών
$chart->getAxes()->getSecondaryVerticalAxis()->isVisible();
$chart->getAxes()->getSecondaryVerticalAxis()->getFormat()->getLine()->setStyle(LineStyle->ThickBetweenThin);
$chart->getAxes()->getSecondaryVerticalAxis()->getFormat()->getLine()->setWidth(20);
# Ορισμός αριθμητικής μορφής δευτερεύοντος άξονα τιμών
$chart->getAxes()->getSecondaryVerticalAxis()->isNumberFormatLinkedToSource();
$chart->getAxes()->getSecondaryVerticalAxis()->setDisplayUnit(DisplayUnitType::Hundreds);
$chart->getAxes()->getSecondaryVerticalAxis()->setNumberFormat("0.0%");
# Ορισμός μέγιστων και ελάχιστων τιμών διαγράμματος
$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);
# Ορισμός χρώματος πίσω τοίχου διαγράμματος
$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);
# Ορισμός χρώματος περιοχής σχεδίασης
$chart->getPlotArea()->getFormat()->getFill()->setFillType(FillType::Solid);
$chart->getPlotArea()->getFormat()->getFill()->getSolidFillColor()->setColor(new java("java.awt.Color", PresetColor->LightCyan));
# Αποθήκευση Παρουσίασης
$pres->save("FormattedChart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Ορισμός Ιδιοτήτων Γραμματοσειράς για ένα Διάγραμμα
Aspose.Slides for PHP via Java παρέχει υποστήριξη για την ορισμό ιδιοτήτων γραμματοσειράς για το διάγραμμα. Ακολουθήστε τα παρακάτω βήματα για την ορισμό των ιδιοτήτων γραμματοσειράς του διαγράμματος.
- Δημιουργήστε ένα αντικείμενο κλάσης Presentation.
- Προσθέστε διάγραμμα στην διαφάνεια.
- Ορίστε το ύψος γραμματοσειράς.
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Παρατίθεται παρακάτω παράδειγμα.
# Δημιουργία ενός αντικειμένου της κλάσης Presentation
$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();
}
}
Ορισμός Αριθμητικής Μορφής
Το Aspose.Slides for PHP via Java παρέχει ένα απλό API για τη διαχείριση της μορφής δεδομένων του διαγράμματος:
- Δημιουργήστε ένα στιγμιότυπο της κλάσης Presentation.
- Αποκτήστε την αναφορά μιας διαφάνειας με τον δείκτη της.
- Προσθέστε ένα διάγραμμα με προεπιλεγμένα δεδομένα και κάποιον από τους επιθυμητούς τύπους (αυτό το παράδειγμα χρησιμοποιεί ChartType::ClusteredColumn).
- Ορίστε την προεπιλεγμένη αριθμητική μορφή από τις διαθέσιμες προεπιλεγμένες τιμές.
- Διασχίστε τα κελιά δεδομένων του διαγράμματος σε κάθε σειρά διαγράμματος και ορίστε τη μορφή αριθμού των δεδομένων του διαγράμματος.
- Αποθηκεύστε την παρουσίαση.
- Ορίστε την προσαρμοσμένη μορφή αριθμού.
- Διασχίστε τα κελιά δεδομένων του διαγράμματος σε κάθε σειρά και ορίστε διαφορετική μορφή αριθμού για τα δεδομένα.
- Αποθηκεύστε την παρουσίαση.
# Δημιουργία ενός αντικειμένου της κλάσης Presentation
$pres = new Presentation();
try {
# Πρόσβαση στην πρώτη διαφάνεια παρουσίασης
$slide = $pres->getSlides()->get_Item(0);
# Προσθήκη προεπιλεγμένου διαγράμματος ομαδοποιημένων στηλών
$chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 500, 400);
# Πρόσβαση στη συλλογή σειρών διαγράμματος
$series = $chart->getChartData()->getSeries();
# Διέλευση σε κάθε σειρά διαγράμματος
foreach($series as $ser) {
# Διέλευση σε κάθε κελί δεδομένων στη σειρά
foreach($ser->getDataPoints() as $cell) {
# Ορισμός αριθμητικής μορφής
$cell->getValue()->getAsCell()->setPresetNumberFormat(10);// 0.00%
}
}
# Αποθήκευση παρουσίασης
$pres->save("PresetNumberFormat.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
| 0 | Γενική |
|---|---|
| 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 | @ |
Ορισμός Στρογγυλεμένων Άκρων Περιοχής Διαγράμματος
Το Aspose.Slides for PHP via Java παρέχει υποστήριξη για τον ορισμό της περιοχής του διαγράμματος. Οι μέθοδοι hasRoundedCorners και setRoundedCorners έχουν προστεθεί στην κλάση Chart class.
- Δημιουργήστε ένα αντικείμενο κλάσης Presentation.
- Προσθέστε διάγραμμα στην διαφάνεια.
- Ορίστε τον τύπο γεμίσματος και το χρώμα γεμίσματος του διαγράμματος
- Ορίστε την ιδιότητα στρογγυλεμένων γωνιών σε True.
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Παρατίθεται παρακάτω παράδειγμα.
# Δημιουργία ενός αντικειμένου της κλάσης Presentation
$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();
}
}
Συχνές Ερωτήσεις
Μπορώ να ορίσω ημιδιαφανή γεμίσματα για στήλες/περιοχές ενώ διατηρώ το περίγραμμα αδιαφανές;
Ναι. Η διαφάνεια του γεμίσματος και το περίγραμμα ρυθμίζονται ξεχωριστά. Αυτό είναι χρήσιμο για τη βελτίωση της αναγνωσιμότητας του πλέγματος και των δεδομένων σε πυκνές απεικονίσεις.
Πώς μπορώ να αντιμετωπίσω τις ετικέτες δεδομένων όταν επικαλύπτονται;
Μειώστε το μέγεθος της γραμματοσειράς, απενεργοποιήστε μη απαραίτητα στοιχεία ετικετών (π.χ. κατηγορίες), ορίστε την απόσταση/θέση της ετικέτας, εμφανίστε ετικέτες μόνο για επιλεγμένα σημεία αν χρειάζεται, ή αλλάξτε τη μορφή σε “value + legend”.
Μπορώ να εφαρμόσω διαβάθμιση ή μοτίβα γεμίσματος σε σειρές;
Ναι. Συνήθως είναι διαθέσιμα τόσο συμπαγή όσο και διαβαθμισμένα/μοτίβα γεμίσματα. Στην πράξη, χρησιμοποιήστε τις διαβαθμίσεις περιορισμένα και αποφύγετε συνδυασμούς που μειώνουν την αντίθεση με το πλέγμα και το κείμενο.