以编程方式使 value/data 标签显示在 SPSS(饼图)图表上

Programmatically make value/data labels show on SPSS (pie) charts

我正在从事一个涉及从 SPSS 导出图表的项目。值标签应该在饼图上可见。 Here's what I get, here's what I want。 代码一切正常(见下文我是如何做的)。我只是还没有找到一种方法,让这些 "value labels" 在不通过图表编辑器(在 SPSS 查看器中双击图表)的情况下显示在饼图上。

我想要的是在我的饼图上添加这些标签,就像我单击 "Show Data Labels" as shown here 时一样。有什么办法可以实现吗?

我正在这样访问我的代码中的图表:

#in a SYNTAX file
* Encoding: UTF-8.
OMS
    /DESTINATION
        FORMAT=OXML
        XMLWORKSPACE="my_ws"
        VIEWER=YES
        IMAGES=YES
        IMAGEFORMAT=PNG
        CHARTFORMAT=IMAGE.
BEGIN PROGRAM python.
import spss
spss.Submit("""FREQUENCIES VARIABLES=Sex
          /PIECHART PERCENT
          /ORDER=ANALYSIS.""")
imgs = spss.EvaluateXPath('my_ws', '/outputTree',
    '//command[@command="Frequencies"]/chartTitle/chart/@imageFile' )
image=spss.GetImage( 'my_ws', imgs[-1] )
END PROGRAM.
OMSEND.

我认为直接使用 SPSS 语法是不可能的。命令语法参考说明了 FREQUENCIES,子命令 PIECHART:

"PERCENT. [...] Percentage is displayed when you request values in the Chart Editor."

我已经这样做了,但它没有向输出文档添加新代码,这让我觉得无法通过语法在该子命令的图中打开百分比。

但是您可以制作 custom chart template as shown here.

因此您的代码应该类似于:

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.