大家好,
描述股票价格走势的数据是由开盘/收盘价和最高/最低价创建的。 有没有办法在JMP中以开盘价和收盘价创建具有真实实体的箱形图(烛台图),并分别以最大(高)和最小(低)价来创建上下阴影,如所附图片所示,还是存在更好的方法吗? 传统的箱形图但是,元素显示离群或分位数盒图,并提供值分布的紧凑视图。 我附上了一个示例数据表,其中提供了几个时间戳和价格值(最小,打开,关闭和最高)。 对于提示和建议,我将不胜感激。

(来源:维基百科)
最好的祝福
我认为这是JMP无需编写脚本就能做到的最好

但是,只要花一点力气,就可以轻松地编写一些JSL来创建烛台图。
是的,正如Jim所指出的,Graph Builder可以轻松做到这一点。 但是,随着获得更多数据,您可能需要考虑IR(各个移动范围图),因为这些信息可以帮助您了解指标随时间推移的一致性/稳定性。
我有更多时间研究这个问题,我认为下面的简单解决方案可能对您来说是一个可行的解决方案。

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Stock Prices.jmp" );
dt:open << label;
dt:close << label;
gb = dt << Graph Builder(
Size( 1289, 456 ),
Show Control Panel( 0 ),
Variables( X( :Date ), Y( :High ), Y( :Low, Position( 1 ) ) ),
Elements( Bar( X, Y( 1 ), Y( 2 ), Legend( 10 ), Bar Style( "Interval" ) ) ),
SendToReport(
Dispatch(
{},
"Date",
ScaleBox,
{ Interval( "Day" ), Inc( 1 ),
Minor Ticks( 0 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
10,
Properties( 0, {Line Width( 2 )}, Item ID( "High..Low", 1 ) )
)}
)
)
);
// Add the boxes to the chart
Report( gb )[framebox( 1 )] << add graphics script(
halfDayincr = In Days( 1 ) / 2 * .8;
days = (Col Max( :Date ) - Col Min( :Date )) / In Days( 1 );
Pen Color( black );
Pen Size( 2 );
For( i = 1, i <= N Rows( dt ), i++,
If( :Open[i] <= :close[i],
Fill Color( light green );
,
Fill Color( light red );
);
Rect( :date[i] - halfDayincr, Max( :open[i], :close[i] ), :date[i] + halfDayincr, Min( :open[i], :close[i] ), 1 );
Rect( :date[i] - halfDayincr, Max( :open[i], :close[i] ), :date[i] + halfDayincr, Min( :open[i], :close[i] ), 0 );
);
);