如何自动缩小图表范围?

问题描述 投票:2回答:1

首先抱歉我的英语不好,因为它不是第一语言。我最近开始学习python,我正在尝试开发一个“简单”的程序,但我遇到了一个问题。

我正在使用xlwings修改Excel并与之交互。我想要实现(或知道它是否可能)是:

我擅长查看数据并绘制图表。然而,该图有时具有例如X轴的20个值,并且在其他情况下,假设X轴为10个值,因此留下10个#NA空的空间。基于此,我想通过改变形成图形的范围来调整图形以仅显示10个值。

函数get_prod_hours()在X轴上查看我想要多少个值:

def get_prod_hours():
    """From the input gets the production hours to adapt the graphs"""
    dt = wb.sheets['Calculatrice']
    return dt.range('E24').value

根据从函数中获得的值,我必须修改图上的值范围(通过减少它)。

解决方案例如从头开始创建图表不行,因为我只想修改图表的范围,因为Excel文件是我公司的“标准”。

我希望有类似的东西:

Excel中的A列值为:1, 2, 3, 4, 5get_prod_hours()值为5,因此我的图表只有5个点而不是例如6个,其中一个是#NA。

非常感谢,对不起文字的墙。

python excel xlwings
1个回答
0
投票

xlwings API没有为图表提供很多选项(请参阅https://docs.xlwings.org/en/stable/api.html?highlight=charts#xlwings.main.Charts)。

尝试在wb.sheets[0].charts找到图表。

然后可以使用修改范围

range = xw.Range((1,1), (get_prod_hours(),1))
set_source_data(wb.sheets[0].range(range))

但是从查看API并了解Excel图表有多少选项,API感觉太薄了。

如果这不起作用,则可以选择添加一个VBA宏来修改图表并调用它。见How do I call an Excel macro from Python using xlwings?

© www.soinside.com 2019 - 2024. All rights reserved.