在 JMP 中添加误差线<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,我有一个简单的问题,但无法解决。 我有一个数据集,我想根据另一个数据集以 Fit Y by X 样式散点图绘制该数据集。 对于每个数据点,我知道标准差,并且我想将这些标准差作为误差线添加到图中,有什么办法可以做到这一点吗?
似乎 JMP 仅在本身计算了标准差的情况下才会正常执行此操作,我不希望这样做,因为我已经知道每个数据点的标准差。
谢谢你的帮助
回复:在 JMP 中添加误差线这对我非常有帮助,我正在尝试编写 JSL 脚本,以便我可以在控制图上绘制标准差误差条,因为控制图上的每个数据点都是 x 个单独点的平均值。有没有办法可以将用于图形生成器的 JSL 脚本用于 Run Chart、XBar、IR、UWMA 或 PreSummarize Control Chart 脚本?
在 JMP 中添加误差线可以使用图形生成器显示误差线,而无需堆叠数据。即,您有 3 个独立的列:中心点、上限和下限。使用上面的数据,将 X 变量(年龄)拖动到 X 轴。然后突出显示上部和下部并将它们拖动到 Y 轴。右键单击图表中心,单击点 > 更改为 > 条形图。然后在图表中右键单击,单击条形图 > 条形图样式 > 间隔。现在将“平均值(高度)”列拖动到 Y 轴右侧。接下来添加连接线并删除上部和下部的连接线。
下面是一个执行此操作的 JSL 脚本以及一些格式:
// Make an example table
dt = Open( "$ENGLISH_SAMPLE_DATA/Big Class.jmp" );
dtsum = dt << Summary( Group( :age ), Mean( :height ), Std Err( :height ) );
// Add columns with Mean ± SE
dtsum << New Column( "lower", numeric,
values(
(:Name( "Mean(height)" ) << get as matrix) –
(:Name( "Std Err(height)" ) << get as matrix)
)
);
dtsum << New Column( "upper",
numeric,
values(
(:Name( "Mean(height)" ) << get as matrix) +
(:Name( "Std Err(height)" ) << get as matrix)
)
);
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :age ),
Y( :lower ),
Y( :upper, Position( 1 ) ),
Y( :Name( "Mean(height)" ), Position( 1 ) )
),
Elements(
Bar(
X,
Y( 1 ),
Y( 2 ),
Y( 3 ),
Legend( 2 ),
Bar Style( "Interval" ),
Summary Statistic( "Mean" )
),
Line( X, Y( 3 ), Legend( 4 ), Row order( 0 ), Summary Statistic( "Mean" ) )
),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
2,
Properties( 0, {Line Color( 0 )} ),
Properties( 1, {Line Color( 0 ), Marker( "FilledCircle" )} )
)}
),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 3 )} )
)
);
在 JMP 中添加误差线这是可能的,但我还没有找到一种直接的方法。首先,您需要计算平均值-SE 和平均值+SE。然后,如果您先堆叠列,您将获得最佳结果。尝试下面的脚本。它说明了在 JMP 9 中执行此操作的一些方法。
// Make an example table
dt = Open( "$ENGLISH_SAMPLE_DATA/Big Class.jmp" );
dtsum = dt << Summary( Group( :age ), Mean( :height ), Std Err( :height ) );
// Add columns with Mean ± SE
dtsum << New Column( "lower",
numeric,
values(
(:Name( "Mean(height)" ) << get as matrix) - (:Name( "Std Err(height)" ) << get as matrix)
)
);
dtsum << New Column( "upper",
numeric,
values(
(:Name( "Mean(height)" ) << get as matrix) + (:Name( "Std Err(height)" ) << getasmatrix)
)
);
// Stack columns
dtstacked = dtsum << Stack(
columns( :Name( "Mean(height)" ), :lower, :upper ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :age ))
);
// Three ways to make a graph with mean and error bars based known SE
// 1. Overlay plot with range plot. Ugly graph and markers are visible for ± SE
dtsum << Overlay Plot( X( :age ), Y( :Name( "Mean(height)" ), :lower, :upper ), Range Plot( 1 ) );
// 2. Graph builder. Nicer graph but table must be stacked first.
dtstacked << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( :Data ) ),
Elements(
Points(
X,
Y,
Legend( 0 ),
Jitter( 0 ),
Summary Statistic( "Mean" ),
Error Bars( "Range" ),
)
)
);
// 3. Chart platform. Similar to graph in 2.
dtstacked << Chart(
X( :age ),
Y( Mean( :Data ) ),
Add Error Bars to Mean( Range ),
Overlay Axis << {{Min( 52.5 ), Max( 72.5 ), Inc( 5 ), Minor Ticks( 1 )}},
Y[1] << Point Chart( 1 )
);
回复:在 JMP 中添加误差线还有一个更简单的选项 - 使用额外的叠加变量时甚至不会出现抖动问题。首先为下限值和上限值各创建一个列(如上所述)。然后堆叠数据(中心点、上限值、下限值)。打开图形生成器并将堆叠的数据添加到 y 轴。然后选择汇总统计信息“平均值”和误差线“范围”。就是这样。即使没有抖动问题!祝你好运
回复:在 JMP 中添加误差线例如


回复:在 JMP 中添加误差线有一个“间隔”功能可让您添加误差线(即,一列包含每行/样本的标准偏差):

回复:在 JMP 中添加误差线Ian Cox 有一个插件可能正是您正在寻找的。
JMP插件,用于绘制X和Y值的不确定性
回复:在 JMP 中添加误差线这确实很有用,但是如何删除上下的连接线(除了通过脚本)?
谢谢,
菲尔
回复:在 JMP 中添加误差线右键单击图表,选择“线”>“Y”>“上限” (或任何你对上限列的称呼)。重复上述步骤,设置下限。
回复:在 JMP 中添加误差线太棒了!我没想到这么简单。
谢谢。
回复:在 JMP 中添加误差线谢谢你的回答。这三种方法都能很好地在y轴上添加误差线。请问如何才能在同一个散点图中同时添加x轴和y轴的误差线呢?