怎么标识图表中值的显著性差异

在学术期刊中,对于图表经常有这样的要求:“All data reported in numerical form must take into account significant figures. ”。什么叫significant figures,一方面,是需要你的试验数据能提供有差异的结果(有差异才有效果嘛),另外一方面需要你在图表上标识指示出来,让大家一眼就知道,谁与谁是有差异的。 好像这个商业周刊中没这种标记符号,大概图表标识如下:

注:来自《科学》Science 2009年2月27日 323卷1228页

其中这种图在学术期刊中非常常见,一般的期刊比自然,科学之类的期刊更常用。这个可能与定位不一样吧,《自然》,《科学》里面更多的高级仪器做出的彩色图像,图像和数据图表的混合,还有其他一些更fancy的照片等等。

不过在看自然,科学的图表是,发现了另外一种显著性差异的标识方法,也就是用倒着的大括号(有的是用中括号,即横竖线)把要比较的两个数据柱连起来,然后在上面标识是显著性差异(用“*”表示)或者极其显著差异(用“**”表示)。这样的标识更清晰,一看就知道谁与谁比较,是否有差异,差异显著性怎么样。

来源:来自《科学》Science 2009年2月27日1213页和1214页。

我知道要实现fig2,fig3或者图C,SAS有三种方法来实现。

这里给出一种比较简单的易用的代码:

data ex;
input type $ num;
if type=”Red” then range=1;
else if type=”Blue” then range=2;
else range=3;
cards;
Red 26
Red 20
Red 22
Blue 16
Blue 17
Blue 15
orange 25
orange 28
orange 22
;
proc anova;
class type;
model num=type;
means type/lsd;
run;
proc sort data=ex;by type;run;
proc means mean std data=ex(drop=range) noprint;
by type;
output out=b mean=mean std=std;
run;
/* Annotate something a little fancier */
data my_anno2;
length color function $8;
retain xsys ysys ‘2’ hsys ‘4’ when ‘a’ color ‘black’ size 1;
set b;
/* Lower tick */
function=’move’; xsys=’2′; ysys=’2′; midpoint=type; y=mean-std; output;
function=’draw’; xsys=’7′; ysys=’2′; x=-2.5; y=mean-std;  output;
function=’draw’; xsys=’7′; ysys=’2′; x=+5; y=mean-std;  output;
/* Upper tick */
function=’move’; xsys=’2′; ysys=’2′; midpoint=type; y=mean+std; output;
function=’draw’; xsys=’7′; ysys=’2′; x=-2.5; y=mean+std;  output;
function=’draw’; xsys=’7′; ysys=’2′; x=+5; y=mean+std;  output;
/* Join upper and lower */
function=’move’; xsys=’2′; ysys=’2′; midpoint=type; y=mean-std;  output;
function=’draw’; xsys=’2′; ysys=’2′; midpoint=type; y=mean+std;  output;
run;

GOPTIONS  noborder vsize=8cm hsize=8cm htext=1   ;
pattern3 v=s color=’#F7971C’;
pattern1 v=s color=’#ED1F23′;
pattern2 v=s color=’#4A68B1′;
axis1 label=(angle=90 JUSTIFY= CENTER h=1 “Distance to plaque (um)”  ) order=(0 to 30 by 10) minor=none offset=(0,0);
axis2 label=none offset=(6,6);
title;
proc gchart data=ex anno=my_anno2;
vbar type / type=mean sumvar=num
raxis=axis1 maxis=axis2
width=5 space=5
coutline=same
subgroup=range nolegend
;
footnote justify=l “sxlion.blog.sohu.com”;
run;
quit;

最后我不得不提醒一下,世界上最权威的学术杂志之一《科学》,里面的数据图竟然有错误,比如图C有两处错误:

1, 横坐标主刻度和所要指示的不一致。从图看来,Distance to plaqu数值应是从10,30,50,70,90。

2, 纵坐标的百分比一般来说标识在主刻度上或放纵坐标标签上都可以,这里竟然都有,明显的一个错误。


相关博文

《怎么标识图表中值的显著性差异》上的一个想法

  1. 不应该用权威来评价science和nature。
    这两个杂志,代表的是知识前沿。真正权威的,影响因子90+,是他们影响因子的三倍。

发表评论

邮箱地址不会被公开。 必填项已用*标注