使用SPSS语法工具设置图表大小

SPSS 语法示例来自 www.spss-tutorials.com

SPSS 图表大小设置工具 - 适用于 SPSS 14 到 17 版本的 SPSS 语法版本。 需要安装 SPSS Python Essentials 才能运行。*

1. 定义函数。

begin program.
def setChartSizes(width,height,charts,filter):
    import SpssClient
    SpssClient.StartClient()
    oDoc = SpssClient.GetDesignatedOutputDoc()
    oItems = oDoc.GetOutputItems()
    for index in range(oItems.Size()):
        oItem = oItems.GetItemAt(oItems.Size() - index - 1)
        if oItem.GetType() == SpssClient.OutputItemType.CHART:
            if (not filter or filter.lower() == oItem.GetProcedureName().lower()):
                if width:
                    oItem.SetWidth(int(width) - 4)
                if height:
                    oItem.SetHeight(int(height) - 4)
                if charts == 'last':
                    break
    SpssClient.StopClient()
end program.

代码解释:

  • begin program.end program.:标志着 SPSS 语法的 Python 代码块的开始和结束。
  • def setChartSizes(width,height,charts,filter)::定义了一个名为 setChartSizes 的 Python 函数,该函数接受四个参数:
    • width: 图表的宽度 (width)。
    • height: 图表的高度 (height)。
    • charts: 设置图表大小的范围,可以是 ‘all’ (所有图表) 或者 ‘last’ (最后一个图表)。
    • filter: 过程名称过滤器 (filter),仅应用于具有特定过程名称的图表。
  • import SpssClient: 导入 SPSS Python 客户端模块 (SpssClient),用于与 SPSS 交互。
  • SpssClient.StartClient(): 启动 SPSS 客户端。
  • oDoc = SpssClient.GetDesignatedOutputDoc(): 获取指定的 SPSS 输出文档 (OutputDoc)。
  • oItems = oDoc.GetOutputItems(): 获取输出文档中的所有输出项 (OutputItems)。
  • for index in range(oItems.Size()):: 循环遍历所有的输出项。
  • oItem = oItems.GetItemAt(oItems.Size() - index - 1): 从后往前获取每个输出项 (OutputItem)。
  • if oItem.GetType() == SpssClient.OutputItemType.CHART:: 检查输出项是否为图表 (CHART)。
  • if (not filter or filter.lower() == oItem.GetProcedureName().lower()):: 检查是否存在过滤器 (filter),如果存在,则检查图表的过程名称 (ProcedureName) 是否与过滤器匹配。
  • if width:if height:: 检查是否指定了宽度 (width) 和高度 (height),如果指定了,则设置图表的宽度和高度。
  • oItem.SetWidth(int(width) - 4): 设置图表的宽度。 减去 4 是为了补偿 SPSS 内部的一些边距。
  • oItem.SetHeight(int(height) - 4): 设置图表的高度。 减去 4 是为了补偿 SPSS 内部的一些边距。
  • if charts == 'last': break: 如果 charts 参数设置为 ‘last’,则只处理最后一个图表,并退出循环。
  • SpssClient.StopClient(): 停止 SPSS 客户端。

2. 使用函数 (示例)。

begin program.
setChartSizes(width='800',height='400',charts = 'all',filter='frequencies')
end program.

示例解释:

  • setChartSizes(width='800',height='400',charts = 'all',filter='frequencies'): 调用 setChartSizes 函数,设置所有由 “frequencies” 过程生成的图表的宽度为 800 像素,高度为 400 像素。