以编程方式使 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.
我正在从事一个涉及从 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.