Raul's example assumes your data is between 0 and 1, inclusive, so you may need to scale it: 13 : 'y-<./,y' NB. Subtract the smallest from each ] - [: <./ , 13 : 'y%>./,y' NB. Divide each by the largest ] % [: >./ , scale=: (] % [: >./ ,)@(] - [: <./ ,) NB. Combine to scale from 0 to 1
So, if data=: +/~i.10 then, doing what Raul showed: viewmat ,/0|:,/0 2|:data >:/ square On Wed, Jan 21, 2015 at 1:55 AM, Raul Miller <rauldmil...@gmail.com> wrote: > It's certainly possible. > > You didn't give any data, and I do not feel like trying to replicate > your original numbers from the image you gave, so I will just use some > arbitrary numbers: > > data=: ?10 10$0 > > Now, let's say that your squares are 25 pixels on a side. We can form > squares like this: > > $square=: (>./~|i:12)%12 > 25 25 > > That's a bit big for email, so here's a smaller version: > > 4%~>./~|i:4 > 1 1 1 1 1 1 1 1 1 > 1 0.75 0.75 0.75 0.75 0.75 0.75 0.75 1 > 1 0.75 0.5 0.5 0.5 0.5 0.5 0.75 1 > 1 0.75 0.5 0.25 0.25 0.25 0.5 0.75 1 > 1 0.75 0.5 0.25 0 0.25 0.5 0.75 1 > 1 0.75 0.5 0.25 0.25 0.25 0.5 0.75 1 > 1 0.75 0.5 0.5 0.5 0.5 0.5 0.75 1 > 1 0.75 0.75 0.75 0.75 0.75 0.75 0.75 1 > 1 1 1 1 1 1 1 1 1 > > (That's basically the same expression, I just moved the division over > to the left hand side, and changed the 12 to a 4, so it's 5 by 5. The > point isn't the expression so much as the resulting data. It's > arranged as a square with values ranging from 0 in the center to 1 at > the edge.) > > Now, we just need to compare this to each of our original values, form > them into a square, and pass that on to viewmat: > > require'viewmat' > viewmat ,/0|:,/0 2|:data >:/ square > > Good enough? > > Or would an explanation of the steps in any of those expressions help? > > (You can shave off parts of an expression to see what was passed > along, and you can shrink the data so you can inspect those > intermediate results easier. You can also use J's trace facility > and/or dissect. You can also of course read up on things in the > dictionary. But sometimes, especially after you've tried some of those > other approaches, it can be good to have someone else give their > perspective - not so much because it's not simple but because having > other people's words can help you think about things from a slightly > different perspective.) > > Thanks, > > -- > Raul > > On Tue, Jan 20, 2015 at 11:48 PM, Ryan <rec...@bwh.harvard.edu> wrote: > > I have a matrix of probabilities that I'd like to visualise similar to > this: > > > http://emotion.inrialpes.fr/people/synnaeve/phdthesis/images/battleship_board_3_1miss.png > > where the bigger the probability, the bigger the square. The closest > I've > > come is a simple > > density plot > > > > mymat=? 27 27$0 > > load 'graphics/plot viewmat' > > 'density' plot mymatrix > > NB. or > > viewmat mymatrix > > > > I've looked through plot's source code but don't see an option for > something > > like this. > > > > Does someone know if it's possible to do? > > > > thanks for any help, > > Ryan > > > > > > > > The information in this e-mail is intended only for the person to whom > it is > > addressed. If you believe this e-mail was sent to you in error and the > > e-mail > > contains patient information, please contact the Partners Compliance > > HelpLine at > > http://www.partners.org/complianceline . If the e-mail was sent to you > in > > error > > but does not contain patient information, please contact the sender and > > properly > > dispose of the e-mail. > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- Devon McCormick, CFA ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm