Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何自动缩小图表的范围?_Python_Excel_Xlwings - Fatal编程技术网

Python 如何自动缩小图表的范围?

Python 如何自动缩小图表的范围?,python,excel,xlwings,Python,Excel,Xlwings,首先,很抱歉我的英语不好,因为它不是第一语言。 我最近开始学习python,并试图开发一个“简单”的程序,但我遇到了一个问题 我正在使用xlwings修改Excel并与之交互。我想要实现的(或知道是否可能)是: 我让excel查看数据并绘制图表。然而,该图有时有20个X轴值,在其他情况下,比如说10个X轴值,因此留下10个空空间。基于此,我想通过改变图形的形状范围来调整图形,使其仅显示10个值 函数get_prod_hours()查看我希望在X轴上显示多少值: def get_prod_hour

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

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

我让excel查看数据并绘制图表。然而,该图有时有20个X轴值,在其他情况下,比如说10个X轴值,因此留下10个空空间。基于此,我想通过改变图形的形状范围来调整图形,使其仅显示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、5
,并从
get_prod_hours()
获取值为5,因此我的图表将只有5个点,而不是其中一个为#NA的示例6


非常感谢,很抱歉出现了文字墙。

xlwings API没有为图表提供很多选项(请参阅)

尝试在wb.sheets[0]中查找图表

然后,可以使用

range = xw.Range((1,1), (get_prod_hours(),1))
set_source_data(wb.sheets[0].range(range))
但是从查看API和了解Excel图表有多少选项来看,API感觉太薄了


如果这不起作用,一个选项是添加一个VBA宏来修改图表并调用它。参见

你好,亚伦,首先,非常感谢你的回答。改变…范围('A1')的选项我尝试过,但是,图表的数据来自不同的来源。。。是否有任何方法可以缩短直线图上的“水平轴值”?如果不缩短值,则将范围缩小到
A1:E1
(如果只需要5个值)。这将忽略
F1
和up中没有的值。使用xlwings,您甚至可以使用数值:
xw.Range((1,1),(get_prod_hours(),1))
而不是构建编程解决方案,尤其是Excel外部的解决方案,您可以使用完善的协议,使用Excel函数使图表数据动态。在我的教程中有一个简单的例子和一些链接。