Veuillez vous référer à la création de graphe avec xlwings. Je serais heureux que vous me disiez qu'il vaut mieux faire cela. Si vous utilisez api, vous pouvez utiliser le code vba → Si vous ne comprenez pas, vous pouvez le vérifier avec "Enregistrer une macro" dans Excel. test.xlsx est un classeur vierge.
python 3.7 xlwings 0.18.0
import xlwings as xw
from xlwings.constants import AxisType
DATA_NUM = 10
#Chargement du classeur Excel
wb = xw.Book('test.xlsx')
#Insérer des données
data_x = list(x for x in range(DATA_NUM))
data_y1 = list(x*2 for x in range(DATA_NUM))
data_y2 = list(x*10-50 for x in range(DATA_NUM))
xw.Range('A1').value = 'x'
xw.Range('B1').value = 'y1'
xw.Range('C1').value = 'y2'
cell_x = xw.Range('A2')
cell_y1 = xw.Range('B2')
cell_y2 = xw.Range('C2')
for cnt in range(DATA_NUM):
cell_x.value = data_x[cnt]
cell_y1.value = data_y1[cnt]
cell_y2.value = data_y2[cnt]
cell_x = cell_x.offset(1, 0)
cell_y1 = cell_y1.offset(1, 0)
cell_y2 = cell_y2.offset(1, 0)
#Insérer un graphique
chart = xw.Chart()
#Ajustement de la position et de la taille du graphique
chart.left = 200
chart.top = 10
chart.width = 300
chart.height = 200
#Réglage du type de graphique
chart.chart_type = 'xy_scatter_lines_no_markers'
#Réglage de la plage de données
chart.set_source_data(xw.Range('A1:C11'))
#Changer la position de l'axe x vers le bas(xlminimum=4 ← S'il vous plaît dites-moi qui sait lire les constantes VBA)
# api[1]Veuillez me dire qui comprend la signification de 1. Si vous le réglez sur 1 pour le moment, cela fonctionnera ...
chart.api[1].Axes(AxisType.xlValue).Crosses = 4
#Changement de l'échelle de l'axe vers l'intérieur(xlInside=2)
chart.api[1].Axes(AxisType.xlCategory).MajorTickMark = 2
chart.api[1].Axes(AxisType.xlValue).MajorTickMark = 2
Recommended Posts