Subscribe Bookmark RSS Feed

Adding a line to a 3-D scatterplot

jennifer_n_blak

Community Trekker

Joined:

Jan 25, 2016

Hello!  

 

I have created a lovely 3-D scatterplot and am trying to add some things that will help interpretation of the points.

 

1. I would like to add a line connect the 0,0,0 vertex to the 1,1,1 vertex (a diagonal line from corner to corner through the middle).  There are very few points along this line, so using the contour options hasn't been working.

2. I would like to add a 2-tone gradient of background color to the walls so that it ranges from 1 shade on one end at 0, to a different shade at 1.

3. I would like to export this in its spinning glory.  A post from 2014 says this is not possible, but hopefully that has been remedied by now?

 

Point 1 and 3 are the most important.  I am interested in a non-scripting solution.  Thanks for your assistance!

Jennifer

2 REPLIES
txnelson

Super User

Joined:

Jun 22, 2012

There really haven't been any JSL upgrades to the 3D Scatterplot Platform, however, I believe the following technique will work, and I believe that it actually was available in 2014.  What I do to create the following display

jennifer_n_blak.PNG

is to create a new column that only has a value for the 2 rows that I want to draw a line between, and then I use

jennifer_n_blakb.PNG

the Connect Points,  grouped by the new column, and it draws a line just between those 2 points.  Below is a sample script

Names Default To Here( 1 );
dt = New Table( "The Line",
	Add Rows( 40 ),
	New Column( "age",
		Numeric,
		"Ordinal",
		Format( "Fixed Dec", 5, 0 ),
		Set Values(
			[12, 12, 12, 13, 13, 13, 12, 12, 13, 16, 14, 13, 12, 12, 14, 14, 15, 15, 17, 14, 14,
			13, 14, 14, 14, 15, 13, 15, 16, 14, 14, 15, 15, 12, 15, 14, 16, 17, 14, 17]
		)
	),
	New Column( "height",
		Numeric,
		"Continuous",
		Format( "Fixed Dec", 5, 0 ),
		Set Values(
			[51, 52, 55, 56, 58, 59, 59, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 62, 63, 63,
			63, 64, 64, 64, 64, 65, 65, 65, 65, 65, 66, 66, 66, 67, 68, 68, 68, 69, 70]
		)
	),
	New Column( "weight",
		Numeric,
		"Continuous",
		Format( "Fixed Dec", 5, 0 ),
		Set Values(
			[79, 64, 74, 67, 95, 79, 95, 84, 112, 115, 81, 107, 123, 128, 85, 91, 92, 104, 116,
			84, 93, 105, 92, 99, 99, 112, 98, 111, 112, 119, 142, 105, 106, 145, 128, 112, 128,
			134, 113, 172]
		)
	),
	New Column( "Grouping",
		Character,
		"Nominal",
		Set Values(
			{"", "Line", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
			"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Line"}
		)
	)
);

dt << Scatterplot 3D(
	Y( :age, :height, :weight ),
	Connect Points( 1, :Grouping ),
	Frame3D(
		Set Grab Handles( 0 ),
		Set Rotation( -22.7391193234154, 33.6106458355737, 86.1083668103014 ),
		Set Marker Quality( 0.3875 ),
		Set Marker Scale( 1.21375 )
	)
);
Jim
ih

Community Trekker

Joined:

Sep 30, 2016

Regarding part 3 of your question:

 

I do not know of an out-of-box way to do this without scripting today but attached is a script that might do what you need without knowing any scripting, provided you have JMP 13 and are using Windows.

 

You should get an animated gif file, similar to this:

smallscatterplot3d.gif

 

Here is what to do:

  1. Download and save the attached jsl script
  2. Create the scatterplot, add lines, resize, change colors, etc.
  3. Go to the red triangle in Scatterplot 3D and select save script > save script to clipboard.
  4. savescript.PNG
  5. Open the jsl script you downloaded from here, at the top click run (make sure nothing is selected).
  6. clickrun.PNG
  7. Fill in the options on the left, I recommend starting with the defaults except to choose a filename.
  8. Paste your script from the clipboard into the text box on the right.
  9. fillinoptions.PNG
  10. Click go

Wait a few seconds or minutes depending on the size of the scatterplot, the amount of data, and the duration/frames per second you selected and eventually it should save a copy of your spinning 3D scatterplot.  To change which variable is on top, change the order of the data columns on the bottom of the scatterplot 3D platform before saving the script to the clipboard.