Diagram jelmagyarázatok testreszabása prezentációkban PHP használatával
Áttekintés
Az Aspose.Slides for PHP via Java lehetőséget biztosít a diagram jelmagyarázatainak testreszabására a PowerPoint‑prezentációkban. Ez a cikk bemutatja, hogyan lehet pozicionálni és méretezni egy jelmagyarázatot, beállítani a teljes jelmagyarázat betűméretét, formázni egyetlen bejegyzést, valamint elrejteni vagy visszaállítani a kiválasztott bejegyzéseket.
A GyIK a kapcsolódó viselkedéseket is tárgyalja, beleértve a jelmagyarázat számára lefoglalt helyet, a többsoros címkék megjelenítését és a formázás öröklését a prezentáció témájából.
Jelmagyarázat pozicionálása
Használja a jelmagyarázat setX, setY, setWidth, és setHeight metódusait a pozíció és a méret megadásához a diagram méretének tört részeként.
Ez a példa egy prezentációt hoz létre, és egy alapértelmezett adatokkal rendelkező klaszteres oszlopdiagramot ad az első diára. A kívánt jelmagyarázat eltolásokat és méreteket a diagram szélességével és magasságával elosztva relatív értékekké alakítja: a jelmagyarázat 50 ponttal van eltolva a diagram bal‑felső sarkától, és 100 × 100 pont méretű. A példa a java_values funkciót használja, hogy a PHP/Java Bridge által visszaadott diagramméreteket PHP‑számokká konvertálja az osztás előtt.
use aspose\slides\ChartType;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 500, 500);
$chartWidth = java_values($chart->getWidth());
$chartHeight = java_values($chart->getHeight());
// Fejezze ki a jelmagyarázat pozícióját és méretét a diagramhoz viszonyítva.
$chart->getLegend()->setX(50 / $chartWidth);
$chart->getLegend()->setY(50 / $chartHeight);
$chart->getLegend()->setWidth(100 / $chartWidth);
$chart->getLegend()->setHeight(100 / $chartHeight);
$presentation->save("legend_position.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
A jelmagyarázat betűméretének beállítása
Használja a jelmagyarázat getTextFormat metódusát a szövegformázás eléréséhez, és a setFontHeight metódust a betűméret pontban történő beállításához.
Ez a példa egy alapértelmezett adatokkal rendelkező diagramot hoz létre, és a jelmagyarázat szövegét 20 pontra állítja. Emellett letiltja a függőleges tengely automatikus határait, és a tartományt -5‑től 10‑ig állítja be.
use aspose\slides\ChartType;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400);
$chart->getLegend()->getTextFormat()->getPortionFormat()->setFontHeight(20);
$chart->getAxes()->getVerticalAxis()->setAutomaticMinValue(false);
$chart->getAxes()->getVerticalAxis()->setMinValue(-5);
$chart->getAxes()->getVerticalAxis()->setAutomaticMaxValue(false);
$chart->getAxes()->getVerticalAxis()->setMaxValue(10);
$presentation->save("legend_font_size.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Egyes jelmagyarázat bejegyzés betűméretének beállítása
Használja a jelmagyarázat getEntries metódusa által visszaadott gyűjteményt egy adott bejegyzés formázásához. A bejegyzés indexei nullával kezdődnek, ezért az 1 index a második bejegyzést jelöli.
Ez a példa egy klaszteres oszlopdiagramot hoz létre, amely alapértelmezett adatai legalább két sorozatot tartalmaznak. A második jelmagyarázat bejegyzést félkövér, dőlt és 20 pontos kék szöveggel formázza.
use aspose\slides\ChartType;
use aspose\slides\FillType;
use aspose\slides\NullableBool;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400);
$textFormat = $chart->getLegend()->getEntries()->get_Item(1)->getTextFormat();
$textFormat->getPortionFormat()->setFontBold(NullableBool::True);
$textFormat->getPortionFormat()->setFontHeight(20);
$textFormat->getPortionFormat()->setFontItalic(NullableBool::True);
$textFormat->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
$textFormat->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
$presentation->save("legend_entry_format.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Egyes jelmagyarázat bejegyzések elrejtése
Egy segédsorozat kizárásához a jelmagyarázatból, miközben az adatai láthatóak maradnak, hívja meg a LegendEntryProperties::setHide metódust true értékkel a ChartSeries::getRelatedLegendEntry segítségével. Ez csak a kijelölt jelmagyarázat bejegyzést rejti el; a sorozat vagy annak adatpontjai nem kerülnek eltávolításra. Ezzel szemben a Chart::setLegend false értékkel történő hívása az egész jelmagyarázatot elrejti.
Az alábbi példa több sorozattal rendelkező klaszteres oszlopdiagramot hoz létre alapértelmezett adatokkal. Elrejti a második sorozat jelmagyarázat bejegyzését (index 1), menti a prezentációt, majd a setHide false értékkel történő hívással visszaállítja a bejegyzést, és második másolatot ment. A oszlopok mindkét fájlban láthatóak maradnak.
use aspose\slides\ChartType;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400);
$chart->setLegend(true);
$legendEntry = $chart->getChartData()->getSeries()->get_Item(1)->getRelatedLegendEntry();
$legendEntry->setHide(true);
$presentation->save("hidden_legend_entry.pptx", SaveFormat::Pptx);
// A bejegyzés visszaállítása a diagram adatait módosítása nélkül.
$legendEntry->setHide(false);
$presentation->save("restored_legend_entry.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
A lenti összehasonlítás ugyanazt a diagramot mutatja, egyszer az összes jelmagyarázat bejegyzés látható, egyszer pedig a második bejegyzés elrejtett. A második sorozat oszlopai változatlanok maradnak.

Oszlop-, sáv- és vonaldiagramok esetén a jelmagyarázat bejegyzései a sorozatokat azonosítják. Kördiagramok esetén egyedi adatpontokat (szeleteket) jelölnek, ezért a kiválasztott szeletre a ChartDataPoint::getRelatedLegendEntry metódust kell használni. Az API dokumentálja ezt a adatpont‑metódust a Pie, Pie3D, ExplodedPie, ExplodedPie3D, PieOfPie és BarOfPie diagramtípusokhoz. Ne feltételezze, hogy ez a gyűrűdiagramokra is érvényes, mivel azok nincsenek a felsoroltak között.
GYIK
Megtudom-e úgy beállítani, hogy a diagram lefoglalja a helyet a jelmagyarázatnak a felülírás helyett?
Igen. Hívja meg a setOverlay metódust false értékkel, hogy a jelmagyarázat helyét lefoglalja, ahelyett, hogy átfedné a diagram területét.
Készíthetek többsoros jelmagyarázat címkéket?
Igen. A hosszú címkék megtörnek, ha a rendelkezésre álló szélesség nem elegendő. Soronkénti sortöréseket is beilleszthet a sorozatnevekbe új sor karakterek használatával.
Hogyan tehetem, hogy a jelmagyarázat a prezentáció téma színsémáját kövesse?
Hagyja a jelmagyarázat színeit, kitöltéseit és betűtípusait beállítatlanul, hogy örökölje a téma formázását. Az explicit formázás felülírja a megfelelő téma beállításokat.