Как создать комбинированную диаграмму
Возможные сценарии использования
Комбинированные диаграммы в Excel позволяют вам воспользоваться этой опцией, потому что вы легко можете объединить два или более типа диаграмм, чтобы сделать понятными ваши данные. Комбинированные диаграммы полезны, когда в ваших данных содержится несколько видов значений, включая цену и объем. Кроме того, комбинированные диаграммы возможны, когда ваши числовые данные меняются широко от серии к серии. Возьмем следующий набор данных в качестве примера, и мы можем увидеть, что эти данные довольно похожи на данные, упомянутые в VHCL. Если мы хотим визуализировать series0, который соответствует “Общий доход”, в виде линейной диаграммы, как нам следует поступить?
Комбинированная диаграмма
После выполнения нижеприведенного кода вы увидите комбинированную диаграмму, показанную ниже.
Образец кода
В приведенном ниже образце кода загружается образец файла Excel и создается выходной файл Excel.
from aspose.cells import Workbook | |
from aspose.cells.charts import ChartMarkerType, ChartType, FormattingType, LegendPositionType | |
from aspose.cells.drawing import LineType | |
from aspose.pydrawing import Color | |
# Create the workbook | |
workbook = Workbook("combo.xlsx") | |
# Access the first worksheet | |
worksheet = workbook.worksheets[0] | |
# Add a stock vloume(VHLC) | |
pieIdx = worksheet.charts.add(ChartType.STOCK_VOLUME_HIGH_LOW_CLOSE, 15, 0, 34, 12) | |
# Retrieve the Chart object | |
chart = worksheet.charts[pieIdx] | |
# Set the legend can be showed | |
chart.show_legend = True | |
# Set the chart title name | |
chart.title.text = "Combo Chart" | |
# Set the Legend at the bottom of the chart area | |
chart.legend.position = LegendPositionType.BOTTOM | |
# Set data range | |
chart.set_chart_data_range("A1:E12", True) | |
# Set category data | |
chart.n_series.category_data = "A2:A12" | |
# Set the Series[1] Series[2] and Series[3] to different Marker Style | |
for j in range(len(chart.n_series)): | |
if j == 1: | |
chart.n_series[j].marker.marker_style = ChartMarkerType.CIRCLE | |
chart.n_series[j].marker.marker_size = 15 | |
chart.n_series[j].marker.area.formatting = FormattingType.CUSTOM | |
chart.n_series[j].marker.area.foreground_color = Color.pink | |
chart.n_series[j].border.is_visible = False | |
elif j == 2: | |
chart.n_series[j].marker.marker_style = ChartMarkerType.DASH | |
chart.n_series[j].marker.marker_size = 15 | |
chart.n_series[j].marker.area.formatting = FormattingType.CUSTOM | |
chart.n_series[j].marker.area.foreground_color = Color.orange | |
chart.n_series[j].border.is_visible = False | |
elif j == 3: | |
chart.n_series[j].marker.marker_style = ChartMarkerType.SQUARE | |
chart.n_series[j].marker.marker_size = 15 | |
chart.n_series[j].marker.area.formatting = FormattingType.CUSTOM | |
chart.n_series[j].marker.area.foreground_color = Color.light_blue | |
chart.n_series[j].border.is_visible = False | |
# Set the chart type for Series[0] | |
chart.n_series[0].type = ChartType.LINE | |
# Set style for the border of first series | |
chart.n_series[0].border.style = LineType.SOLID | |
# Set Color for the first series | |
chart.n_series[0].border.color = Color.dark_blue | |
# Fill the PlotArea area with nothing | |
chart.plot_area.area.formatting = FormattingType.NONE | |
# Save the Excel file | |
workbook.save("out.xlsx") |