Python 以编程方式使值/数据标签显示在SPSS(饼图)图表上

Python 以编程方式使值/数据标签显示在SPSS(饼图)图表上,python,charts,spss,Python,Charts,Spss,我正在做一个项目,涉及从SPSS导出图表。值标签应该在饼图上可见。 代码正在运行(请参见下面的操作方法)。我只是没有找到一种方法,使那些“值标签”显示在饼图上,而不通过图表编辑器(双击SPSS查看器中的图表) 我想要的是在饼图上显示这些标签,就像我单击“显示数据标签”时一样。有没有办法做到这一点 我正在访问代码中的图表,如下所示: 语法文件中的# *编码:UTF-8。 OMS /目的地 格式=OXML XMLWORKSPACE=“my_ws” 查看器=是 图像=是 IMAGEFORMAT=PNG

我正在做一个项目,涉及从SPSS导出图表。值标签应该在饼图上可见。 代码正在运行(请参见下面的操作方法)。我只是没有找到一种方法,使那些“值标签”显示在饼图上,而不通过图表编辑器(双击SPSS查看器中的图表)

我想要的是在饼图上显示这些标签,就像我单击“显示数据标签”时一样。有没有办法做到这一点

我正在访问代码中的图表,如下所示:

语法文件中的
#
*编码:UTF-8。
OMS
/目的地
格式=OXML
XMLWORKSPACE=“my_ws”
查看器=是
图像=是
IMAGEFORMAT=PNG
CHARTFORMAT=图像。
开始编写python程序。
导入spss
spss.Submit(““”频率变量=性别
/图表百分比
/顺序=分析。“”)
imgs=spss.EvaluateXPath('my_-ws','/outputTree',
'//command[@command=“Frequencies”]/chartTitle/chart/@imageFile')
image=spss.GetImage('my_-ws',imgs[-1])
结束程序。
奥姆森德。

我认为直接使用SPSS语法是不可能的。命令语法参考说明了频率、子命令和图表:

“百分比。[…]当您在图表编辑器中请求值时,将显示百分比。”

我已经这样做了,但它没有向输出文档添加新代码,这使我认为在这个子命令的绘图中打开百分比无法通过语法实现

然而,你可以做出一个决定

因此,您的代码应该是这样的:

OMS
    /DESTINATION
        FORMAT=OXML
        XMLWORKSPACE="my_ws"
        VIEWER=YES
        IMAGES=YES
        IMAGEFORMAT=PNG
        CHARTFORMAT=IMAGE.
BEGIN PROGRAM python.
import spss
spss.Submit("""set ctemplate
                        '<TEMPLATELOCAION>/<TEMPLATENAME>.sgt'.


                       FREQUENCIES VARIABLES=<VARIABLENAME>
                       /PIECHART PERCENT
                       /ORDER=ANALYSIS.

                      set ctemplate none.""")
imgs = spss.EvaluateXPath('my_ws', '/outputTree',
    '//command[@command="Frequencies"]/chartTitle/chart/@imageFile' )
image=spss.GetImage( 'my_ws', imgs[-1] )
END PROGRAM.
OMSEND.
OMS
/目的地
格式=OXML
XMLWORKSPACE=“my_ws”
查看器=是
图像=是
IMAGEFORMAT=PNG
CHARTFORMAT=图像。
开始编写python程序。
导入spss
spss.Submit(““”设置模板
“/.sgt”。
频率变量=
/图表百分比
/顺序=分析。
设置ctemplate none。“”)
imgs=spss.EvaluateXPath('my_-ws','/outputTree',
'//command[@command=“Frequencies”]/chartTitle/chart/@imageFile')
image=spss.GetImage('my_-ws',imgs[-1])
结束程序。
奥姆森德。

我认为直接使用SPSS语法是不可能的。命令语法参考说明了频率、子命令和图表:

“百分比。[…]当您在图表编辑器中请求值时,将显示百分比。”

我已经这样做了,但它没有向输出文档添加新代码,这使我认为在这个子命令的绘图中打开百分比无法通过语法实现

然而,你可以做出一个决定

因此,您的代码应该是这样的:

OMS
    /DESTINATION
        FORMAT=OXML
        XMLWORKSPACE="my_ws"
        VIEWER=YES
        IMAGES=YES
        IMAGEFORMAT=PNG
        CHARTFORMAT=IMAGE.
BEGIN PROGRAM python.
import spss
spss.Submit("""set ctemplate
                        '<TEMPLATELOCAION>/<TEMPLATENAME>.sgt'.


                       FREQUENCIES VARIABLES=<VARIABLENAME>
                       /PIECHART PERCENT
                       /ORDER=ANALYSIS.

                      set ctemplate none.""")
imgs = spss.EvaluateXPath('my_ws', '/outputTree',
    '//command[@command="Frequencies"]/chartTitle/chart/@imageFile' )
image=spss.GetImage( 'my_ws', imgs[-1] )
END PROGRAM.
OMSEND.
OMS
/目的地
格式=OXML
XMLWORKSPACE=“my_ws”
查看器=是
图像=是
IMAGEFORMAT=PNG
CHARTFORMAT=图像。
开始编写python程序。
导入spss
spss.Submit(““”设置模板
“/.sgt”。
频率变量=
/图表百分比
/顺序=分析。
设置ctemplate none。“”)
imgs=spss.EvaluateXPath('my_-ws','/outputTree',
'//command[@command=“Frequencies”]/chartTitle/chart/@imageFile')
image=spss.GetImage('my_-ws',imgs[-1])
结束程序。
奥姆森德。

您好,感谢您更新答案。看起来不错,但我不能接受,因为我同时找到了另一个解决方案,没有时间测试。嗨,谢谢你更新答案。它看起来不错,但我不能接受,因为我同时找到了另一个解决方案,没有时间测试它。