cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Browse apps to extend the software in the new JMP Marketplace
Choose Language Hide Translation Bar
robust1972
Level IV

can we color the cells in jmp table as we do in excel? I mean really give colors to the part of table/cells interested

can we color the cells in jmp table as we do in excel? I mean really give colors to the part of table/cells interested?

I tried below jsl but it only works when you plot the data in graphs but not in the table itself?

 

Thanks in advance!

Evan

 

 

dt=Data Table( "Bin Wafer Map" );
For(i=4, i<=N col(dt),i++,
dt:i << Set Property(
"Value Colors",
{1=Green,3 = Red, 4 = Yellow,5=orange, 6 = Magenta, 7 =Blue,8 = Cyan,9=BlueCyan}
));

 

1 ACCEPTED SOLUTION

Accepted Solutions
Jeff_Perkinson
Community Manager Community Manager

Re: can we color the cells in jmp table as we do in excel? I mean really give colors to the part of table/cells interested

In JMP 9 and beyond try right clicking on a cell in a data table and you'll get a menu that will let you color the cell.

 

6176_JMPScreenSnapz001.png

 

In JSL you can use the Color Cell() message:

 

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

column(dt, “Age”)  <<  Color Cells( {5, {15}} );

 

or the Color Cell by Value() message:

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

:Age <<

Set Property(

  "Value Colors",

  {12 = -13977430, 13 = -3780930, 14 = -

  4157407, 15 = -13596965, 16 = -2210961, 17

   = -10562523}

);

Wait( 1 );

:Age << Color Cell by Value( 1 );
-Jeff

View solution in original post

12 REPLIES 12
Jeff_Perkinson
Community Manager Community Manager

Re: can we color the cells in jmp table as we do in excel? I mean really give colors to the part of table/cells interested

In JMP 9 and beyond try right clicking on a cell in a data table and you'll get a menu that will let you color the cell.

 

6176_JMPScreenSnapz001.png

 

In JSL you can use the Color Cell() message:

 

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

column(dt, “Age”)  <<  Color Cells( {5, {15}} );

 

or the Color Cell by Value() message:

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

:Age <<

Set Property(

  "Value Colors",

  {12 = -13977430, 13 = -3780930, 14 = -

  4157407, 15 = -13596965, 16 = -2210961, 17

   = -10562523}

);

Wait( 1 );

:Age << Color Cell by Value( 1 );
-Jeff
pmroz
Super User

Re: can we color the cells in jmp table as we do in excel? I mean really give colors to the part of table/cells interested

You can apply a value gradient using JSL in the following manner.  Note that to use dynamically calculated values of min, max and average I had to build a string and execute it with eval(parse()).

 

 

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dtcol = column(dt, "weight");

one_min = col min(dtcol);
one_max = col max(dtcol);
one_avg = col mean(dtcol);

gradient_expr = evalinsert("\[
        dtcol << Set Property( "Color Gradient",
                    {"Jet", Range(^one_min^, ^one_max^, ^one_avg^)});
            dtcol << color cell by value(1);
]\");

eval(parse(gradient_expr));

 

SamH
Level III

Re: can we color the cells in jmp table as we do in excel? I mean really give colors to the part of

Hi is there a way to color selected cells? I have a hew hundred cells that are selected and I would like to give a color to stand out.

Thanks

Sam

pmroz
Super User

Re: can we color the cells in jmp table as we do in excel? I mean really give colors to the part of

For a JMP table the selection color is controlled by the Windows selection color.  Here's how to do it under windows 7: https://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/how-to-change-windows-7-highligh...

 

robust1972
Level IV

Re: can we color the cells in jmp table as we do in excel? I mean really give colors to the part of table/cells interested

thanks Jeff and PMroz.

I got the hint and was able to get my wafer map colored by Bin(value). I did not know the color by cell value is off by default. Have not figure out how to tell jmp do nothing if the cell value is empty.

 

 

=Data Table( "Bin Wafer Map" );
For(i=4, i<=N col(dt),i++,
:i << Set Property(
"Value Colors",
1=Green,3 = Red, 4 = Yellow,5=orange, 6 = Magenta, 7 =Blue
,8 = Cyan,9=BlueCyan,.=white}
<<color cell by value(1));

 

 

 

 

6187_Capture.PNG

robust1972
Level IV

Re: can we color the cells in jmp table as we do in excel? I mean really give colors to the part of table/cells interested

finally I got it to color only non-empty cells with desired colors. but there is still an error though the script is executable.

 

 

=Data Table( "Bin Wafer Map" );
(i=4, i<=N col(dt),i++,
(j=1, j<=N Row(dt),j++,
if(dt:i[j]==1,dt:i << Color Cells(Green,{j}),
     if(dt:i[j]==3,dt:i << Color Cells(Red,{j}),
          if(dt:i[j]==4,dt:i << Color Cells(Yellow,{j}),
               if(dt:i[j]==5,dt:i << Color Cells(Orange,{j}),
                    if(dt:i[j]==6,dt:i << Color Cells(Magenta,{j}),
                         if(dt:i[j]==7,dt:i << Color Cells(Blue,{j}),
                              if(dt:i[j]==8,dt:i << Color Cells(Cyan,{j}),
                                   if(dt:i[j]==9,dt:i << Color Cells(BlueCyan,{j}),
))))));


(i=4, i<=N col(dt),i++,
(j=1, j<=N Row(dt),j++,
(!zero or missing(dt:i[j]),dt:i[j]<<color cell by value(1),
)));

 

6195_Capture.PNG

pmroz
Super User

Re: can we color the cells in jmp table as we do in excel? I mean really give colors to the part of table/cells interested

This code is a bit simpler.  Note that I'm using k for a looping variable instead of j; j is a function in JSL.

 

 

color_list = {"Green", "Red", "Yellow", "Purple", "Orange", "Magenta", "Blue", "Cyan", "BlueCyan"};

dt = Data Table( "Bin Wafer Map" );
For( i = 4, i <= N Col( dt ), i++,
    For( k = 1, k <= N Row( dt ), k++,
        one_value = dt:i[k];
        if (! is missing(one_value),
            dt:i << color cells(color_list[one_value], {k});
            dt:i << color cell by value( 1 );
        );
    );
);

 

robust1972
Level IV

Re: can we color the cells in jmp table as we do in excel? I mean really give colors to the part of table/cells interested

thanks, P!

your script is much simpler but it is not able to exclude the empty cells(showing X)

my script trying to send color cell by value to a cell, which works but giving below error. Do you know what the error tells us and how to debug it?

PS:  I tried use below script to add a empty row btw each wafer but it might calls a infinite loop:(, never worked.

 

 

For(a=0, a<(N Row(dt))/11,a++,
dt<<add rows(1,(a+(a+1)*11));
);

 

 

 

Thanks a gain.

6200_Untitled.png

pmroz
Super User

Re: can we color the cells in jmp table as we do in excel? I mean really give colors to the part of table/cells interested

My code excludes the empty cells with the ! is missing() check.  I only get the X's for empty cells when I use a Value Gradient.

Your code is failing because that method expects a column, not a cell.  Again I strongly recommend that you change j to k or something because j is a function in JSL.

I realized that the color cell by value method only needs to be called once per column, so I took it out of the k loop.

color_list = {"Green", "Red", "Yellow", "Purple", "Orange", "Magenta", "Blue", "Cyan", "BlueCyan"};

dt = Data Table( "Bin Wafer Map" );

For( i = 4, i <= N Col( dt ), i++,

    dt:i << color cell by value( 1 );

    For( k =1, k <=N Row( dt ), k++,

        one_value = dt:i[k];

        if (! is missing(one_value),

            dt:i << color cells(color_list[one_value], {k});

        );

    );

);