The PSYM keyword to PLOT_3DBOX will give you a point scatter plot for the main plot line. I think you are asking about how to get a point plot on each or any of the three grids that make up the "back" walls of the 3D visualization. For plotting on those walls, PLOT_3DBOX has the keywords XY_PLANE, YZ_PLANE and XZ_PLANE. Indeed, PLOT_3DBOX never included an option to have the plots that are drawn for each of those keywords display as point plots rather than line plots.
Luckily, PLOT_3DBOX is an IDL 'lib' function, whose source code can be modified by the programmer, and it is not a very difficult modification that is called for. I would take the following steps:
- Open PLOT_3DBOX's source code in the IDLDE editor with the command ".EDIT PLOT_3DBOX".
- Search and replace everywhere in the file the name "PLOT_3D_BOX" with the name "my_plot_3dbox".
- In the function prototype - "PRO Plot_3dbox, X, Y, Z, ..." - insert the following new keyword options:" XY_PSYM=xy_psym", "YZ_PSYM=yz_psym" and "XZ_PSYM = xz_psym".
- Find the three conditional code blocks that begin "if(KeyWord_Set(XY_PLANE))", "if(KeyWord_Set(YZ_PLANE))" and "if(KeyWord_Set(XZ_PLANE))" and append to the PLOTS call of each of these code blocks an extra keyword setting with the following syntax pattern: "PSYM=xy_psym", etc.
- Save this modified procedure as 'my_plot_3dbox.pro' anywhere you want in your IDL search path.
Now, if you test the following:
x = findgen(18) * 20
y = sin(x)
z = findgen(18)
my_plot_3dbox, x, y, z, /XZ_PLANE, XZ_PSYM=2
you will get a line plot in the 3D dataspace and a pure asterisk symbol plot on the XZ-plane back wall of the 3D plot.
James Jones
|