Zarządzaj znacznikami danych wykresu w prezentacjach przy użyciu Java
Przegląd
Ten artykuł wyjaśnia, jak pracować ze znacznikami danych wykresu w Aspose.Slides. Pokazuje, jak utworzyć wykres, uzyskać dostęp do serii i jej punktów danych, zastosować wypełnienie obrazem do znaczników na poziomie punktu danych, dostosować rozmiar znacznika oraz zapisać zaktualizowaną prezentację. Zauważa również, że standardowe kształty znaczników są dostępne przez wyliczenie MarkerStyleType oraz że wygląd znacznika jest zachowywany przy eksportowaniu wykresów do formatów rastrowych lub SVG.
Ustaw opcje znaczników wykresu
Markery mogą być ustawiane na punktach danych wykresu w określonych seriach. Aby ustawić opcje znaczników wykresu, postępuj zgodnie z poniższymi krokami:
- Zainstancjuj klasę Presentation.
- Utwórz domyślny wykres.
- Ustaw obraz.
- Pobierz pierwszą serię wykresu.
- Dodaj nowy punkt danych.
- Zapisz prezentację na dysku.
W poniższym przykładzie ustawiliśmy opcje znaczników wykresu na poziomie punktów danych.
// Tworzenie pustej prezentacji
Presentation pres = new Presentation();
try {
// Dostęp do pierwszego slajdu
ISlide slide = pres.getSlides().get_Item(0);
// Tworzenie domyślnego wykresu
IChart chart = slide.getShapes().addChart(ChartType.LineWithMarkers, 0, 0, 400, 400);
// Pobieranie indeksu domyślnego arkusza danych wykresu
int defaultWorksheetIndex = 0;
// Pobieranie arkusza danych wykresu
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// Usuwanie serii demonstracyjnej
chart.getChartData().getSeries().clear();
// Dodawanie nowej serii
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType());
// Wczytywanie obrazu 1
IPPImage imgx1 = pres.getImages().addImage(new FileInputStream(new File("Desert.jpg")));
// Wczytywanie obrazu 2
IPPImage imgx2 = pres.getImages().addImage(new FileInputStream(new File("Tulips.jpg")));
// Pobranie pierwszej serii wykresu
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// Dodanie nowego punktu (1:3) w tym miejscu.
IChartDataPoint point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 1, 1, (double) 4.5));
point.getMarker().getFormat().getFill().setFillType(FillType.Picture);
point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1);
point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 2, 1, (double) 2.5));
point.getMarker().getFormat().getFill().setFillType(FillType.Picture);
point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2);
point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 3, 1, (double) 3.5));
point.getMarker().getFormat().getFill().setFillType(FillType.Picture);
point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1);
point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 4, 1, (double) 4.5));
point.getMarker().getFormat().getFill().setFillType(FillType.Picture);
point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2);
// Zmiana znacznika serii wykresu
series.getMarker().setSize(15);
// Zapisanie prezentacji z wykresem
pres.save("ScatterChart.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
FAQ
Jakie kształty znaczników są dostępne od razu?
Standardowe kształty są dostępne (koło, kwadrat, romb, trójkąt itp.); lista jest zdefiniowana przez klasę MarkerStyleType. Jeśli potrzebujesz niestandardowego kształtu, użyj znacznika z wypełnieniem obrazem, aby emulować własną grafikę.
Czy znaczniki są zachowywane przy eksportowaniu wykresu do obrazu lub SVG?
Tak. Podczas renderowania wykresów do formatów rastrowych lub zapisywania kształtów jako SVG, znaczniki zachowują swój wygląd i ustawienia, w tym rozmiar, wypełnienie i obramowanie.