我有一组 "数据清洗 "前后的坐标,主要是调整参与者收集的坐标,使其更好地代表真实值。我想做一个图来描述数据清洗的效果(x轴上为真值,y轴上为报告值)。偏离认同线代表不准确。
如何将坐标表达为一个值,这样我就可以比较它们并有效地绘制这个图?还是有更好的表达方式?
谢谢。
听起来你想要的是一个散点图,x轴上为真,y轴上为报告。您不需要将这些值组合成一个单一的实体,只要在创建散点图时在适当的轴上使用适当的变量即可。您还可以使用GPL(图形编程语言)命令语法为图形添加身份线。
例如,使用两个变量 "true "和 "reported",下面的命令创建了一个带有标识线的散点图,范围为0-100的数据。
GGRAPH
/GRAPHDATASET NAME="graphdataset" VARIABLES=true reported MISSING=LISTWISE REPORTMISSING=NO
/GRAPHSPEC SOURCE=INLINE
/FITLINE TOTAL=NO.
BEGIN GPL
SOURCE: s=userSource(id("graphdataset"))
DATA: true=col(source(s), name("true"))
DATA: reported=col(source(s), name("reported"))
GUIDE: axis(dim(1), label("True Value"))
GUIDE: axis(dim(2), label("Reported Value"))
GUIDE: text.title(label("True and Reported Values"))
ELEMENT: point(position(true*reported))
DATA: x = iter(0,100,100)
TRANS: y = eval(x)
ELEMENT: line(position(x*y))
END GPL.
除了最后三行以外的所有数据 END GPL.
来自于图表生成器中的标准散点图拟合。
DATA: x = iter(0,100,100)
计算一个变量x的内部数据,以100为步长从0到100迭代。当然这意味着只有两个值,但这是你定义一条直线所需要的全部。
TRANS: y = eval(x)
计算内部数据,其中y=x。
ELEMENT: line(position(x*y))
根据 x 和 y 坐标绘制一条直线。
因此,你可以从你所拥有的任何数据开始,使用图表生成器来创建你的散点图代码,将其粘贴到语法窗口中,然后添加以下内容。DATA
, TRANS
和 ELEMENT
语句添加到GPL中。当然,你也要改变一下 iter
必要时,表达。