Format Diagram dalam Presentasi menggunakan Python
Gambaran Umum
Artikel ini menjelaskan cara memformat diagram dalam presentasi PowerPoint dengan menggunakan Aspose.Slides. Artikel ini menunjukkan cara menyesuaikan elemen diagram utama seperti sumbu, garis kisi, judul, legenda, area plot, dan isi dinding untuk meningkatkan tampilan dan keterbacaan data diagram.
Artikel ini juga memperagakan cara mengatur properti font untuk teks diagram, menerapkan format numerik preset dan kustom pada data diagram, serta mengaktifkan sudut bulat untuk area diagram. Bersama-sama, contoh-contoh ini menunjukkan cara mengendalikan gaya visual dan presentasi data diagram dalam sebuah presentasi.
Format Elemen Diagram
Aspose.Slides for Python memungkinkan pengembang menambahkan diagram kustom ke slide dari awal. Bagian ini menjelaskan cara memformat berbagai elemen diagram, termasuk sumbu kategori dan sumbu nilai.
Aspose.Slides menyediakan API sederhana untuk mengelola elemen diagram dan menerapkan pemformatan kustom:
- Buat sebuah instance dari kelas Presentation .
- Dapatkan referensi ke slide berdasarkan indeksnya.
- Tambahkan diagram dengan data default dari tipe yang diinginkan (dalam contoh ini,
ChartType.LINE_WITH_MARKERS). - Akses sumbu nilai diagram dan atur hal-hal berikut:
- Atur line format untuk garis kisi utama sumbu nilai.
- Atur line format untuk garis kisi minor sumbu nilai.
- Atur number format untuk sumbu nilai.
- Atur min, max, major, and minor units untuk sumbu nilai.
- Atur text properties untuk label sumbu nilai.
- Atur title untuk sumbu nilai.
- Atur line format untuk sumbu nilai.
- Akses sumbu kategori diagram dan atur hal-hal berikut:
- Atur line format untuk garis kisi utama sumbu kategori.
- Atur line format untuk garis kisi minor sumbu kategori.
- Atur text properties untuk label sumbu kategori.
- Atur title untuk sumbu kategori.
- Atur label positioning untuk sumbu kategori.
- Atur rotation angle untuk label sumbu kategori.
- Akses legenda diagram dan atur text properties-nya.
- Tampilkan legenda diagram tanpa menumpuk diagram.
- Akses secondary value axis diagram dan atur hal-hal berikut:
- Aktifkan value axis sekunder.
- Atur line format untuk value axis sekunder.
- Atur number format untuk value axis sekunder.
- Atur min, max, major, and minor units untuk value axis sekunder.
- Plot seri diagram pertama pada value axis sekunder.
- Atur warna isi dinding belakang diagram.
- Atur warna isi area plot diagram.
- Tuliskan presentasi yang telah dimodifikasi ke file PPTX.
import aspose.slides.charts as charts
import aspose.slides as slides
import aspose.pydrawing as draw
# Membuat instance kelas Presentation.
with slides.Presentation() as presentation:
# Akses slide pertama.
slide = presentation.slides[0]
# Tambahkan diagram contoh.
chart = slide.shapes.add_chart(charts.ChartType.LINE_WITH_MARKERS, 50, 50, 500, 400)
# Atur judul diagram.
chart.has_title = True
chart.chart_title.add_text_frame_for_overriding("")
chart_title = chart.chart_title.text_frame_for_overriding.paragraphs[0].portions[0]
chart_title.text = "Sample Chart"
chart_title.portion_format.fill_format.fill_type = slides.FillType.SOLID
chart_title.portion_format.fill_format.solid_fill_color.color = draw.Color.gray
chart_title.portion_format.font_height = 20
chart_title.portion_format.font_bold = 1
chart_title.portion_format.font_italic = 1
# Atur format garis kisi utama untuk sumbu nilai.
chart.axes.vertical_axis.major_grid_lines_format.line.fill_format.fill_type = slides.FillType.SOLID
chart.axes.vertical_axis.major_grid_lines_format.line.fill_format.solid_fill_color.color = draw.Color.blue
chart.axes.vertical_axis.major_grid_lines_format.line.width = 5
chart.axes.vertical_axis.major_grid_lines_format.line.dash_style = slides.LineDashStyle.DASH_DOT
# Atur format garis kisi minor untuk sumbu nilai.
chart.axes.vertical_axis.minor_grid_lines_format.line.fill_format.fill_type = slides.FillType.SOLID
chart.axes.vertical_axis.minor_grid_lines_format.line.fill_format.solid_fill_color.color = draw.Color.red
chart.axes.vertical_axis.minor_grid_lines_format.line.width = 3
# Atur format angka sumbu nilai.
chart.axes.vertical_axis.is_number_format_linked_to_source = False
chart.axes.vertical_axis.display_unit = charts.DisplayUnitType.THOUSANDS
chart.axes.vertical_axis.number_format = "0.0%"
# Atur nilai maksimum, minimum, satuan utama, dan satuan minor sumbu nilai.
chart.axes.vertical_axis.is_automatic_major_unit = False
chart.axes.vertical_axis.is_automatic_max_value = False
chart.axes.vertical_axis.is_automatic_minor_unit = False
chart.axes.vertical_axis.is_automatic_min_value = False
chart.axes.vertical_axis.max_value = 15
chart.axes.vertical_axis.min_value = -2
chart.axes.vertical_axis.minor_unit = 0.5
chart.axes.vertical_axis.major_unit = 2.0
# Atur properti teks sumbu nilai.
vertical_axis_portion_format = chart.axes.vertical_axis.text_format.portion_format
vertical_axis_portion_format.font_bold = 1
vertical_axis_portion_format.font_height = 16
vertical_axis_portion_format.font_italic = 1
vertical_axis_portion_format.fill_format.fill_type = slides.FillType.SOLID
vertical_axis_portion_format.fill_format.solid_fill_color.color = draw.Color.dark_green
vertical_axis_portion_format.latin_font = slides.FontData("Times New Roman")
# Atur judul sumbu nilai.
chart.axes.vertical_axis.has_title = True
chart.axes.vertical_axis.title.add_text_frame_for_overriding("")
vertical_axis_title = chart.axes.vertical_axis.title.text_frame_for_overriding.paragraphs[0].portions[0]
vertical_axis_title.text = "Primary Axis"
vertical_axis_title.portion_format.fill_format.fill_type = slides.FillType.SOLID
vertical_axis_title.portion_format.fill_format.solid_fill_color.color = draw.Color.gray
vertical_axis_title.portion_format.font_height = 20
vertical_axis_title.portion_format.font_bold = 1
vertical_axis_title.portion_format.font_italic = 1
# Atur format garis kisi utama untuk sumbu kategori.
chart.axes.horizontal_axis.major_grid_lines_format.line.fill_format.fill_type = slides.FillType.SOLID
chart.axes.horizontal_axis.major_grid_lines_format.line.fill_format.solid_fill_color.color = draw.Color.green
chart.axes.horizontal_axis.major_grid_lines_format.line.width = 5
# Atur format garis kisi minor untuk sumbu kategori.
chart.axes.horizontal_axis.minor_grid_lines_format.line.fill_format.fill_type = slides.FillType.SOLID
chart.axes.horizontal_axis.minor_grid_lines_format.line.fill_format.solid_fill_color.color = draw.Color.yellow
chart.axes.horizontal_axis.minor_grid_lines_format.line.width = 3
# Atur properti teks sumbu kategori.
horizontal_axis_portion_format = chart.axes.horizontal_axis.text_format.portion_format
horizontal_axis_portion_format.font_bold = 1
horizontal_axis_portion_format.font_height = 16
horizontal_axis_portion_format.font_italic = 1
horizontal_axis_portion_format.fill_format.fill_type = slides.FillType.SOLID
horizontal_axis_portion_format.fill_format.solid_fill_color.color = draw.Color.blue
horizontal_axis_portion_format.latin_font = slides.FontData("Arial")
# Atur judul sumbu kategori.
chart.axes.horizontal_axis.has_title = True
chart.axes.horizontal_axis.title.add_text_frame_for_overriding("")
horizontal_axis_title = chart.axes.horizontal_axis.title.text_frame_for_overriding.paragraphs[0].portions[0]
horizontal_axis_title.text = "Sample Category"
horizontal_axis_title.portion_format.fill_format.fill_type = slides.FillType.SOLID
horizontal_axis_title.portion_format.fill_format.solid_fill_color.color = draw.Color.gray
horizontal_axis_title.portion_format.font_height = 20
horizontal_axis_title.portion_format.font_bold = 1
horizontal_axis_title.portion_format.font_italic = 1
# Atur posisi label sumbu kategori.
chart.axes.horizontal_axis.tick_label_position = charts.TickLabelPositionType.LOW
# Atur sudut rotasi label sumbu kategori.
chart.axes.horizontal_axis.tick_label_rotation_angle = 45
# Atur properti teks legenda.
legend_portion_format = chart.legend.text_format.portion_format
legend_portion_format.font_bold = 1
legend_portion_format.font_height = 16
legend_portion_format.font_italic = 1
legend_portion_format.fill_format.fill_type = slides.FillType.SOLID
legend_portion_format.fill_format.solid_fill_color.color = draw.Color.dark_red
# Tampilkan legenda diagram yang menumpuk diagram.
chart.legend.overlay = True
# Atur warna dinding belakang diagram.
chart.back_wall.thickness = 1
chart.back_wall.format.fill.fill_type = slides.FillType.SOLID
chart.back_wall.format.fill.solid_fill_color.color = draw.Color.orange
chart.floor.format.fill.fill_type = slides.FillType.SOLID
chart.floor.format.fill.solid_fill_color.color = draw.Color.red
# Atur warna area plot.
chart.plot_area.format.fill.fill_type = slides.FillType.SOLID
chart.plot_area.format.fill.solid_fill_color.color = draw.Color.light_cyan
# Simpan presentasi.
presentation.save("FormattedChart.pptx", slides.export.SaveFormat.PPTX)
Atur Properti Font Diagram
Aspose.Slides for Python mendukung pengaturan properti terkait font untuk diagram. Ikuti langkah-langkah di bawah ini untuk mengonfigurasi properti font diagram:
- Instansiasi objek Presentation .
- Tambahkan diagram ke slide.
- Atur tinggi font.
- Simpan presentasi yang telah dimodifikasi.
Contoh kode disediakan di bawah.
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 100, 100, 500, 400)
chart.text_format.portion_format.font_height = 20
chart.chart_data.series[0].labels.default_data_label_format.show_value = True
presentation.save("ChartFontProperties.pptx", slides.export.SaveFormat.PPTX)
Atur Format Numerik
Aspose.Slides for Python menyediakan API sederhana untuk mengelola format data diagram:
- Buat sebuah instance dari kelas Presentation .
- Dapatkan referensi ke slide berdasarkan indeksnya.
- Tambahkan diagram dengan data default dari tipe apa pun yang diinginkan.
- Atur format angka preset dari nilai preset yang tersedia.
- Jelajahi sel data diagram dalam setiap seri dan atur format angka.
- Simpan presentasi.
- Atur format angka kustom.
- Jelajahi sel data diagram dalam setiap seri dan atur format angka yang berbeda.
- Simpan presentasi.
import aspose.slides.charts as charts
import aspose.slides as slides
# Membuat instance kelas Presentation.
with slides.Presentation() as presentation:
# Akses slide pertama.
slide = presentation.slides[0]
# Tambahkan diagram kolom berkelompok default.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 500, 400)
# Atur format angka preset.
# Jelajahi setiap seri diagram.
for series in chart.chart_data.series:
# Jelajahi setiap titik data dalam seri.
for cell in series.data_points:
# Atur format angka.
cell.value.as_cell.preset_number_format = 10 # 0.00%
# Simpan presentasi.
presentation.save("PresetNumberFormat.pptx", slides.export.SaveFormat.PPTX)
Format angka preset yang tersedia dan indeks yang bersesuaian tercantum di bawah ini.
| 0 | General |
|---|---|
| 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 | @ |
Atur Tepi Bulat untuk Area Diagram
Aspose.Slides for Python mendukung konfigurasi area diagram menggunakan properti Chart.has_rounded_corners.
- Instansiasi objek Presentation .
- Tambahkan diagram ke slide.
- Atur jenis isi dan warna isi diagram.
- Atur properti rounded-corners menjadi
True. - Simpan presentasi yang telah dimodifikasi.
Contoh disediakan di bawah.
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 100, 600, 400)
chart.line_format.fill_format.fill_type = slides.FillType.SOLID
chart.line_format.style = slides.LineStyle.SINGLE
chart.has_rounded_corners = True
presentation.save("RoundedBorders.pptx", slides.export.SaveFormat.PPTX)
FAQ
Bisakah saya mengatur isi semi-transparan untuk kolom/area sambil mempertahankan batas tidak tembus pandang?
Ya. Transparansi isi dan garis tepi diatur secara terpisah. Ini berguna untuk meningkatkan keterbacaan kisi dan data dalam visualisasi yang padat.
Bagaimana cara menangani label data ketika mereka saling tumpang tindih?
Kurangi ukuran font, nonaktifkan komponen label yang tidak esensial (misalnya kategori), atur offset/posisi label, tampilkan label hanya untuk titik yang dipilih jika diperlukan, atau ubah format menjadi “nilai + legenda”.
Bisakah saya menerapkan isian gradient atau pola pada seri?
Ya. Baik isian padat maupun gradient/pola biasanya tersedia. Praktiknya, gunakan gradient secara hemat dan hindari kombinasi yang mengurangi kontras dengan kisi dan teks.