cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
BHarris
Level VII

Vector fields in JMP 19

I love the new Vector Fields capability in JMP Graph Builder!

 

That said, in one of the EA videos it showed how to stack the arrows, e.g. multiple connected line segments with an arrow off the last one, but the EA program has since closed, and now I can't seem to figure out how to make those show up.

 

E.g. suppose I have a robot tool position, velocity, and acceleration vectors, and I'd like to show position y vs. position x, but to draw a line from that using the velocity x and velocity y as deltas, then the acceleration as a little line segment off the end of that one, then draw an arrowhead at the end...

 

I think I've figured out that the velocity and acceleration terms all need to be dragged to the Interval drop zone, but I can only get one of the lines to show up.

 

Here's an example dataset:

 

time px py vx vy ax ay
0 20 30 3 5 0 0
2 28.1 45.2 5.1 10.2 2.1 5.2
4 40.6 71.4 7.4 16 0.2 0.6
6 57.5 105.4 9.5 18 1.9 1.4
8 73.7 144.1 6.7 20.7 -4.7 1.3
10 86.5 185.4 6.1 20.6 4.1 -1.4

 

If I drag px -> X, py -> Y, and the rest to Interval, then set the line ordering and connection settings, I get this:

 

BHarris_0-1758207354148.png

 

The velocity vectors are drawn, but the accelerations aren't showing up, and nothing changes if I uncheck them from the variables list.  Did that feature get removed/modified?  It's weird that ax and ay don't show up in the Interval box or the legend, but if I right click it they are there and it gives me the option to remove them.

 

What am I missing?

2 ACCEPTED SOLUTIONS

Accepted Solutions
hogi
Level XIII

Re: Vector fields in JMP 19

I remember that this option is possible by dragging multiple columns onto the axes.
With the new option ,they will automatically be used in pairs:

hogi_1-1758213882622.png

 


To use this mode (instead of Interval) you can calculate the "3" points as transform columns:

Graph Builder(
	Transform Column( "py+vy+ay", Formula( :py + :vy + :ay ) ),
	Transform Column( "py+vy", Formula( :py + :vy ) ),
	Transform Column( "px+vx+ax", Formula( :px + :vx + :ax ) ),
	Transform Column( "px+vx", Formula( :px + :vx ) ),
	Size( 483, 459 ),
	Summary Statistic( "Median" ),
	Variables(
		X( :px ),
		X( :"px+vx"n, Position( 1 ) ),
		X( :"px+vx+ax"n, Position( 1 ) ),
		Y( :py ),
		Y( :"py+vy"n, Position( 1 ) ),
		Y( :"py+vy+ay"n, Position( 1 ) )
	),
	Elements(
		Line(
			X( 1 ),
			X( 2 ),
			X( 3 ),
			Y( 1 ),
			Y( 2 ),
			Y( 3 ),
			Legend( 5 ),
			Ordering( "Within Row" ),
			Connection( "Arrow" ),
			Summary Statistic( "Mean" )
		)
	)
);

hogi_0-1758213791093.png


don't know how to distinguish between the 3 segments if all 3 are parallel ...

View solution in original post

XanGregg
Staff

Re: Vector fields in JMP 19

I think @hogi is remembering correctly and that the example used an SAT sample data table where every year had a different pair of columns (math and verbal).

You can also do it with stacked data using missing values or a grouping variable. However, that requires restructuring the data, unlike the transform approach.

XanGregg_0-1758315955848.png

Graph Builder(
	Show Control Panel( 0 ),
	Variables( X( :x ), Y( :y ) ),
	Elements(
		Line( X, Y,
			Ordering( "Row Order" ),
			Connection( "Arrow" ),
			Missing Values( "No Connection" )
		)
	)
);

View solution in original post

3 REPLIES 3
hogi
Level XIII

Re: Vector fields in JMP 19

I remember that this option is possible by dragging multiple columns onto the axes.
With the new option ,they will automatically be used in pairs:

hogi_1-1758213882622.png

 


To use this mode (instead of Interval) you can calculate the "3" points as transform columns:

Graph Builder(
	Transform Column( "py+vy+ay", Formula( :py + :vy + :ay ) ),
	Transform Column( "py+vy", Formula( :py + :vy ) ),
	Transform Column( "px+vx+ax", Formula( :px + :vx + :ax ) ),
	Transform Column( "px+vx", Formula( :px + :vx ) ),
	Size( 483, 459 ),
	Summary Statistic( "Median" ),
	Variables(
		X( :px ),
		X( :"px+vx"n, Position( 1 ) ),
		X( :"px+vx+ax"n, Position( 1 ) ),
		Y( :py ),
		Y( :"py+vy"n, Position( 1 ) ),
		Y( :"py+vy+ay"n, Position( 1 ) )
	),
	Elements(
		Line(
			X( 1 ),
			X( 2 ),
			X( 3 ),
			Y( 1 ),
			Y( 2 ),
			Y( 3 ),
			Legend( 5 ),
			Ordering( "Within Row" ),
			Connection( "Arrow" ),
			Summary Statistic( "Mean" )
		)
	)
);

hogi_0-1758213791093.png


don't know how to distinguish between the 3 segments if all 3 are parallel ...

BHarris
Level VII

Re: Vector fields in JMP 19

Very clever, @hogi !   A bit tedious, though.  For some reason based on the EA video I thought it would just work without the transforms.  Maybe @XanGregg will weigh in.

XanGregg
Staff

Re: Vector fields in JMP 19

I think @hogi is remembering correctly and that the example used an SAT sample data table where every year had a different pair of columns (math and verbal).

You can also do it with stacked data using missing values or a grouping variable. However, that requires restructuring the data, unlike the transform approach.

XanGregg_0-1758315955848.png

Graph Builder(
	Show Control Panel( 0 ),
	Variables( X( :x ), Y( :y ) ),
	Elements(
		Line( X, Y,
			Ordering( "Row Order" ),
			Connection( "Arrow" ),
			Missing Values( "No Connection" )
		)
	)
);

Recommended Articles