Как объединить линию вертикали или линейную диаграмму с горизонтальными гистограммами для Excel в python - PullRequest
0 голосов
/ 03 мая 2020

Я объединил линейные графики с вертикальными гистограммами. Мне удалось изменить ориентацию гистограмм с вертикальной на горизонтальную с помощью параметра chart.type={bar|col}, но я не смог объединить вертикальный линейный график с ним, поскольку нет возможности изменить ориентацию линейного графика. Я использовал следующий код:

Complete_values = Reference(ws, min_row=7, max_row=row, 
min_col=column_index_from_string('B'), max_col=column_index_from_string('B'))

# Create object of BarChart class
chart = BarChart()

# adding data to the Bar chart object #setting series to the graph
chart.add_data(Complete_values)

# addin labels to the x axis
chart.set_categories(Reference(ws, min_row=7, max_row=row, min_col=column_index_from_string('A'), max_col=column_index_from_string('B'))) # to set the labels

# set the title of the chart
chart.title = " Overall Skill Analysis Merchandising Role - Individual"

# set the title of the x-axis
chart.x_axis.title = " Field values "

# set the title of the y-axis
chart.y_axis.title = " Score values"

# removing the gridlines from the graph
chart.y_axis.majorGridlines = None

# adding data labels to the bars above the charts
chart.dataLabels = DataLabelList()
chart.dataLabels.showVal = True
chart.dataLabels.position = 'inBase'

chart.height = 15
chart.width = 26
chart.type="bar"
#adding a threshold line
c = LineChart()
line_label = Reference(ws, min_row=7, max_row=15, min_col=3, max_col=3)
c.add_data(line_label)
c.y_axis.axPos = "r"
c.x_axis.majorTickMark=None
# s1 = c.series[0]
# s1.dLbls = DataLabelList()
# d1 = DataLabelList()
# d1.showVal = True
# # d1.showSerName = True
# d1.position = 'l'
# s1.dLbls.dLbl.append(d1)
c.dataLabels= DataLabelList()
c.dataLabels.showVal = True
c.dataLabels.position = "ctr"
c.dataLabels.direction = "horizontal"
chart += c
chart.style = 43
# chart.legend.delete= True
chart.legend = None
ws.add_chart(chart, "A6")
...