As part of my NLP project, I need a way to plot 2D & 3D point cluster plots. Let's take the example in my previous email:
(0 0, 2 _3 ,: _1 2) dis 1 1,_1 _2,:3 4 1.41421 3.16228 4.47214 In that distance calculation, their are 6 coordinate pairs, representing 6 points in x & y. The six points are: 0 0, 2 _3, _1 2, 1 1,_1 _2, 3 4 I want to see a plot of those 6 points. 1. How do I make a 2D plot that shows these 6 points as small dots on an xy graph. 2. How can I make the first three points red dots, and the last three points blue dots? 3. Now assume I have 6 more points, but they are in three dimensions: 0 0 0, 2 _3 1, _1 2 0, 1 1 1,_1 _2 3, 3 4 2 4. How do I make a 3D plot that shows these 6 points as small dots in a 3D xyz perspective view graph 5. How do I rotate the view? 6. How can I make the first three points red dots, and the last three points blue dots? Skip <<<>>> On Fri, Oct 27, 2017 at 9:48 PM, Skip Cave <s...@caveconsulting.com> wrote: > Raul, > > Yes, rank was the problem. It hit me while I was eating dinner > but your solution was different than what I expected (they usually are): > > Raul: > > dis =.4 :'%:+/*:x-y' "1 > > (0 0, 2 _3 ,: _1 2) dis 1 1,_1 _2,:3 4 > > 1.41421 3.16228 4.47214 > > > 0 0 dis 1 1,_1 _2,:3 4 > > 1.41421 2.23607 5 > > > I need to study this more. My solution was: > > dis =. 4 :'%:+/"1 *:x-y' > > > (0 0, 2 _3 ,: _1 2) dis 1 1,_1 _2,:3 4 > > 1.41421 3.16228 4.47214 > > > 0 0 dis 1 1,_1 _2,:3 4 > > |length error: dis > > | %:+/"1*:x -y > > > So my scheme doesn't work for one-to-many. It just works on one-to-one > > & many-to-many (both nouns must be the same size). > > I had no idea you could put the rank operator outside the quotes! > > Where does the language description doc discuss this trick? > > > Skip > > Skip Cave > Cave Consulting LLC > > On Fri, Oct 27, 2017 at 7:03 PM, Raul Miller <rauldmil...@gmail.com> > wrote: > >> The items that dis is expecting are rank 1 vectors. So it might make >> sense to include a rank 1 specification in its definition: >> >> dis =: 4 :'%:+/*:x-y'"1 >> >> Does that work for this example? >> >> 0 0 dis 1 1,_1 _2,:3 4 >> 1.41421 2.23607 5 >> >> ... seems so ... >> >> Thanks, >> >> -- >> Raul >> >> >> On Fri, Oct 27, 2017 at 7:11 PM, 'Skip Cave' via Programming >> <programm...@jsoftware.com> wrote: >> > In the 2014-11-11 NYCJUG meeting >> > <http://code.jsoftware.com/wiki/NYCJUG/2014-11-11> there was a >> discussion >> > on Euclidean Distance. The verb 'dis' was used to demonstrate how to to >> > calculate the Euclidean distance between two vectors. >> > >> > 0 0 dis 1 1 NB. Euclidean distance 1.41421 1 1,_1 _2,:3 4 NB. Table of >> 2-D >> > points 1 1 _1 _2 3 4 0 0 dis 1 1,_1 _2,:3 4 NB. Distances from origin >> > 1.41421 2.23607 5 0 0 0 dis 1 1 1 NB. Handles higher dimensions 1.73205 >> > I have a NLP project that needs to calculate the >> > Euclidean distance between points in a multi-dimensional >> > space. I now the basic formula - square the differences, >> > sum the squares, take the square root of the sum: >> > >> > dis =. 4 :'%:+/*:x-y' >> > >> > 0 0 dis 1 1 >> > >> > 1.41421 >> > 0 0 0 dis 1 1 1 >> > >> > 1.73205 >> > >> > Looking good.... >> > >> > 0 0 dis 1 1,_1 _2,:3 4 >> > >> > |length error: dis >> > >> > | %:+/*:x -y >> > >> > Ooops! >> > >> > How can I make dis handle multiple pairs of vectors? >> > >> > like: >> > >> > (0 0, 2 _3 ,: _1 2) dis 1 1,_1 _2,:3 4 >> > >> > 1.41421 3.16228 4.47214 >> > >> > Skip Cave >> > Cave Consulting LLC >> > ---------------------------------------------------------------------- >> > For information about J forums see http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm