要拉长饼图的长度,可以修改以下几个地方:

  1. 修改req的值:在初始化public_method时,将req的值增加,可以通过修改req的增加量来控制饼图的长度。例如,可以将req的增加量从15改为30,即req + 30 * len(data_linechart.get('pies'))。

  2. 修改chart的高度:在插入饼图时,可以通过修改插入的cell的行数来控制饼图的高度。例如,将cell的行数从self.req + 15 * index改为self.req + 30 * index。

综上所述,修改后的代码如下:

def c_get_table_pie_charts(self):
    data_table = self.data[0]
    data_linechart = self.data[1]

    # 先化表格,预留好多个饼图位置
    public_method = PublicMethod(col=self.col, req=(self.req + 30 * len(data_linechart.get('pies'))),
                                 worksheet=self.worksheet, data=data_table, format=self.format)
    table_cell = public_method.c_get_alone_table()

    has_data_linechart_col = []
    colnames = data_table.get('colnames')
    for index, cols in enumerate(data_linechart['pies']):
        title = data_linechart['pies'][index].get('subtitle', '')
        for index1, colname in enumerate(colnames):
            if colname not in title:
                continue
            has_data_linechart_col.append(ROW_NAME_INDEX[index1])

    public_method = PublicMethod(total=self.total)
    for index, cols in enumerate(has_data_linechart_col):
        if len(data_linechart['pies']) == index:
            break
        chart = self.workbook.add_chart(self.chart_type)
        public_method.linechart_col = [cols]
        if data_linechart['pies'][index].get('subtitle', '') != '':
            data_linechart['title'] = data_linechart['pies'][index].get('subtitle')
        public_method.get_pie_chart(table_cell, data_table, chart, data_linechart)
        cell = self.col + str(self.req + 30 * index)
        self.worksheet.insert_chart(cell.decode('utf-8'), chart)
    return table_cell + 1

请注意,上述代码中的修改部分仅仅是为了展示如何拉长饼图的长度,实际应用中可能需要根据具体需求进行调整

def c_get_table_pie_chartsself data_table = selfdata0 data_linechart = selfdata1 #先化表格预留好多个饼图位置 public_method = PublicMethodcol=selfcol req=selfreq + 15 lendata_linechartg

原文地址: https://www.cveoy.top/t/topic/iZ2B 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录