Python : créer des graphiques à colonnes dans Excel

2024-01-11 01:39:22

Un histogramme groupé et un histogramme empilé sont deux variantes de l'histogramme. Le diagramme à colonnes groupées permet une comparaison simple des valeurs dans différentes catégories, tandis que le diagramme à colonnes empilées affiche à la fois le total de chaque catégorie et la proportion de ses composants individuels. Dans cet article, vous apprendrez comment créer des histogrammes groupés ou empilés dans Excel en Python à l'aide de Spire.XLS for Python.

Installer Spire.XLS for Python

Ce scénario nécessite Spire.XLS for Python et plum-dispatch v1.7.4. Ils peuvent être facilement installés dans votre VS Code via la commande pip suivante.

pip install Spire.XLS

Si vous ne savez pas comment procéder à l'installation, veuillez vous référer à ce didacticiel: Comment installer Spire.XLS for Python dans VS Code

Créer un histogramme groupé dans Excel en Python

Pour ajouter un graphique à une feuille de calcul, utilisez la méthode Worksheet.Chart.Add(ExcelChartType chartType). L'énumération ExcelChartType comprend différents types de graphiques prédéfinis dans MS Excel. Voici les étapes pour ajouter un histogramme groupé dans Excel à l'aide de Spire.XLS for Python.

  • Créez un objet Workbook.
  • Obtenez une feuille de calcul spécifique via la propriété Workbook.Worksheets[index].
  • Écrivez les données dans les cellules spécifiées.
  • Ajoutez un caractère de colonne groupé à la feuille de calcul à l’aide de la méthode Worksheet.Chart.Add(ExcelChartType.ColumnClustered).
  • Définissez les données du graphique via la propriété Chart.DataRange.
  • Définissez la position, le titre et d'autres attributs du graphique via les propriétés sous l'objet Chart.
  • Enregistrez le classeur dans un fichier Excel à l’aide de la méthode Workbook.SaveToFile().
  • Python
from spire.xls import *
from spire.xls.common import *

# Create a Workbook object
workbook = Workbook()

# Get the first sheet
sheet = workbook.Worksheets[0]

# Set chart data
sheet.Range["A1"].Value = "Product"
sheet.Range["A2"].Value = "Diet Coke"
sheet.Range["A3"].Value = "Mountain Dew"
sheet.Range["A4"].Value = "Diet Pesi"
sheet.Range["A5"].Value = "Cherry Coke"

sheet.Range["B1"].Value = "Store A"
sheet.Range["B2"].NumberValue = 35000
sheet.Range["B3"].NumberValue = 46000
sheet.Range["B4"].NumberValue = 28000
sheet.Range["B5"].NumberValue = 51000
sheet.Range["C1"].Value = "Store B"
sheet.Range["C2"].NumberValue = 41000
sheet.Range["C3"].NumberValue = 32000
sheet.Range["C4"].NumberValue = 38000
sheet.Range["C5"].NumberValue = 40000

# Set cell style
sheet.Range["A1:C1"].RowHeight = 15
sheet.Range["A1:C1"].Style.Color = Color.get_Black()
sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:C1"].Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center
sheet.AutoFitColumn(1)

# Add a chart to the sheet
chart = sheet.Charts.Add(ExcelChartType.ColumnClustered)

# Set data range of chart
chart.DataRange = sheet.Range["A1:C5"]
chart.SeriesDataFromRange = False

# Set position of the chart
chart.LeftColumn = 5
chart.TopRow = 1
chart.RightColumn = 14
chart.BottomRow = 21

# Set chart title
chart.ChartTitle = "Store Wise Soda Soft Drink Sales"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# Set axis title
chart.PrimaryCategoryAxis.Title = "Product"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.Title = "Sales"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90

# Set series color, overlap, gap width and data labels
series = chart.Series
for i in range(len(series)):
    cs = series[i]
    cs.Format.Options.IsVaryColor = True
    cs.Format.Options.Overlap = -50
    cs.Format.Options.GapWidth = 350
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True

# Set legend position
chart.Legend.Position = LegendPositionType.Top

# Save the document
workbook.SaveToFile("ClusteredColumnChart.xlsx", ExcelVersion.Version2016)

Python: Create Column Charts in Excel

Créer un graphique à colonnes empilées dans Excel en Python

Le processus de création d’un histogramme empilé est similaire à celui de création d’un histogramme groupé. La seule différence est que vous devez modifier le type de graphique Excel de ColumnClustered à ColumnStacked.

  • Créez un objet Workbook.
  • Obtenez une feuille de calcul spécifique via la propriété Workbook.Worksheets[index].
  • Écrivez les données dans les cellules spécifiées.
  • Ajoutez un caractère de colonne groupé à la feuille de calcul à l’aide de la méthode Worksheet.Chart.Add(ExcelChartType.ColumnStacked).
  • Définissez les données du graphique via la propriété Chart.DataRange.
  • Définissez la position, le titre et d'autres attributs du graphique via les propriétés sous l'objet Chart.
  • Enregistrez le classeur dans un fichier Excel à l’aide de la méthode Workbook.SaveToFile().
  • Python
from spire.xls import *
from spire.xls.common import *

# Create a Workbook object
workbook = Workbook()

# Get the first sheet
sheet = workbook.Worksheets[0]

# Set chart data
sheet.Range["A1"].Value = "Product"
sheet.Range["A2"].Value = "Diet Coke"
sheet.Range["A3"].Value = "Mountain Dew"
sheet.Range["A4"].Value = "Diet Pesi"
sheet.Range["A5"].Value = "Cherry Coke"
sheet.Range["B1"].Value = "Store A"
sheet.Range["B2"].NumberValue = 35000
sheet.Range["B3"].NumberValue = 46000
sheet.Range["B4"].NumberValue = 28000
sheet.Range["B5"].NumberValue = 51000
sheet.Range["C1"].Value = "Store B"
sheet.Range["C2"].NumberValue = 41000
sheet.Range["C3"].NumberValue = 32000
sheet.Range["C4"].NumberValue = 38000
sheet.Range["C5"].NumberValue = 40000

# Set cell style
sheet.Range["A1:C1"].RowHeight = 15
sheet.Range["A1:C1"].Style.Color = Color.get_Black()
sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:C1"].Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center
sheet.AutoFitColumn(1)

# Add a chart to the sheet
chart = sheet.Charts.Add(ExcelChartType.ColumnStacked)

# Set data range of chart
chart.DataRange = sheet.Range["A1:C5"]
chart.SeriesDataFromRange = False

# Set position of the chart
chart.LeftColumn = 5
chart.TopRow = 1
chart.RightColumn = 14
chart.BottomRow = 21

# Set chart title
chart.ChartTitle = "Store Wise Soda Soft Drink Sales"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# Set axis title
chart.PrimaryCategoryAxis.Title = "Product"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.Title = "Sales"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90

# Set series color, gap width and data labels
series = chart.Series
for i in range(len(series)):
    cs = series[i]
    cs.Format.Options.IsVaryColor = True
    cs.Format.Options.GapWidth = 270
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
    cs.DataPoints.DefaultDataPoint.DataLabels.Position = DataLabelPositionType.Inside

# Set legend position
chart.Legend.Position = LegendPositionType.Top

# Save the document
workbook.SaveToFile("StackedColumnChart.xlsx", ExcelVersion.Version2016)

Python: Create Column Charts in Excel

Demander une licence temporaire

Si vous souhaitez supprimer le message d'évaluation des documents générés ou vous débarrasser des limitations fonctionnelles, veuillez demander une licence d'essai de 30 jours pour toi.

Voir également