Fluid.datasetplot~ abstraction for 2D/3D visualization

Here’s an update that changes the LUT for the hsl representation, as that’s what’s most useful for kmeans cluster viewing (as per this thread).

4 clusters from kmeans (linear display):

4 clusters (previous hsl):

4 clusters (new hsl):

fluid.datasetplot~.maxpat.zip (38.8 KB)

1 Like

I wish there was quanlification of the :heart: icon - this would get at least to 11

1 Like

obviously I’m adding a feature though :slight_smile: I love community coding.

You can see the ‘missing’ feature of a zoom. so far called range, to be able to decide the range of the presentation grid. I’ll medidate a bit further to decide if x and y should be different (more work) but so far they are the same and it works well - the coding I’m hacking is not as clean as @rodrigo.constanzo 's, as you can imagine :slight_smile:

1 Like

I’m fighting an ‘interesting unexpected feature’. Can you try this patch as is and tell me if you only get a red dot in the top left?

If yes and not unexpected, what am I missing in my patch to make a simple query work?

thanks

p


----------begin_max5_patcher----------
1096.3ocyXtsaaiCDF9Z6mBBg16bb4AqS4x80Xwh.JIZG1HKJPQ65rEsO6KO
H65jHGSqCFKBhEDIk94mlgCmg+b9rfLwAVS.3QveClM6mymMy1jogYs2OKXK
8PdIswNrfsrlF5FVvBWeJ1Aksc3wVp1sUrSUxT1wiZaslpxelWs4IIKW4zCQ
HKgK.woglKgPyuX7RH3eZeF2qQ8ZMy8.AAm5hWXEUj88GVQNSYd0Qgwl1907
4leVLP1vEaj7h+51IbUjApTzf.jDN4.VK4UpaGODDaXZEJ0bgf6KfimErh8C
8arC9X0rpBPofVzCLCSOCy3z9hIpSLQiHlz7W.MLEHWT1.v8fTxJCbHhcIYR
ReIE1IojwiTEHS+WdIiJ6lRxkoLEaoKNx4zFecHynUaBV7mqNc6hbb5TaiK3
4WXk5pq6BSRgsghBuFyFc3hJp7UCwm9uSnS5d8aaiMz8rhmzCTOcdhpTRd1N
kaSmYmXeV.aaFy9NgKZaolJoaYJl7IVEMqjcgN2RqqO0ssW6W5wMzwMuVJs8
KN1dIjzykR33o1gpwF7esMtgl0RZNCTPUzGerVn63gu1zW1QIQtK8F9noF98
rC0RvWVi.eCDt7lAMI1E8vsrJtuwKwqtG6Lza5hrz41ZnOzgm5s2e.Dd69nH
qyIF4vJ85QDMoH0Ien+Ox2Qi2HvGbp46q5Mn5KfsAYbYrzO.QwSMfeqO.15g
1B3PrfnnQCP8V2JQUOLV1hChrUBgWc72qjxUmrbZovmjdvjEGc2+xAHLB.u4
rNSHt8DQ1ODg8HqyKZcm73OqK2wKVZRJPmjvuAeZ4vexm.D1Uw+p1zCvg9+Q
XstzM0Ey.EAGsMPUhMaJY2rCNwU86JnuN3WxZldWbuuzAATIjaok7FF3K2d.
KBxU1nq7p3dltv3ELNyNGYmpPbOm8i87FdFujqd8bXDqWq8rcyJqEDd1ztTj
+BqnPR2zjKEkkmaHxK44undVJ1s44ya2Yxd9iOfqi8erirMaEEuwHmIjE5I+
aM69dvSs0wagIBhbWf9YLpz9cebcecoP86k5Ov0zSEfddVBW0rYe+Ak7p2ef
iV.Ls+VaYiXmL+3rq0y.7G.JXMJdE0Tj5YiA6FSmdK9pi4.2tKBg8PGywaBP
CTnTODJdL9xQ7PHSv5gqD5toDzGugjwvcH0Yp+TkHvwRIrmLcLfwwnQngK8U
Mbn6EjHX2PBGlzId.IYTfL9t4cF4iRiQTDywgbmTxmHvGmNCSIehWYmNCMVO
F5qRCkIjW9diQ7JjW9diw5IjW68mNFJg7HZ+6BjrkWXOT11DnRhhMGJ.IgXt
fPQImtcLlbWcChnoH1oWR+NWuSRiuCRGc8sEco5Rqq2yjMsOtUUcAJeWXGdx
B6s7J2s1j4CjLS8ItwirY8GPk5j6U5L62IcIkeHxcZwAl5EjU63shqAdtofD
c0OlD3apoN1rEIM+Wy+O.Rw+SKA
-----------end_max5_patcher-----------

ok I found the bug: the naming convention for the entries is numerical only. I’ll mod the patch to make it work with arbitrary entry label

1 Like

ok a few bugs found and sorted, this is still work in progress but I added the range of the display and the radius of the nearest neighbourg requested

stuff I’ll add next is probably a gate on click (querying just when click) as an option but for now further testing welcome

Archive.zip (42.6 KB)

1 Like

Good additions!

I did think about the int vs symbol thing but I viewed that aspect of it as just kind of a built in bonus, so didn’t bother changing it.

And the range is good as well. I changed the patcherargs section to this:

That way the range updates dynamically too (much easier than guessing what you want to scale it to and rebanging manually).

1 Like

what is your view on the clicking, and on the number of neighbours? The latter I could think of something like what @weefuzzy has implemented in the helpfile colouring but that is more hard work…

Clicking is a great idea actually. Or having a flag for @onclick or something, so if you just want to wiggle around (without clicking) you can do that too.

The radius thing is cool, though unless it starts spitting out more than a single match, it would always just match on itself, and therefore not matter for most cases? I could be missing what the purpose of that is.

I know what @radius is good for in a general sense, but here the (internal) dataset and display are coupled, so not sure what it’s for here.

the way I set it up now, it has @numneighbourg to 1 and with radius 0 will give you whatever is the nearest, whatever the distance. I find that mode much more intuitive but wanted to support yours too.

Ah right. Yeah that’s what I was aiming for, I just did it via @radius instead, as it was on my mind at the time. But the original idea there was for it to tell you what single point you’re hovering over.

A more useful, though larger, change would be to have more values being returned as a list, but that starts to become a bit more a standalone patch or example.

A change like being able to have symbolic labels would also make for a handy pre-processing abstraction where you can start with a larger dataset and then visualize up to 3 arbitrary dimension from it, ala @tedmoore’s plotter.

1 Like

It seems like it’s broken for non-symbol labels now. I’ve not traced through completely to see what you’ve changed, but I noticed my previous .maxhelp wasn’t working anymore (loads of Point not found error messages), then going back to the version you posted here to figure out that if you change the sprintf to have %ld it throws the same error. So something along the way doesn’t like having ints as labels.


----------begin_max5_patcher----------
1272.3ocyZssbihCD8Y6uBUTy7liGjDWyi6uwVakR.xNZBFnDxdb1ol4aeER
DGl3aJPGmsRESYIfiNp69zcqjeNelWV8ddqG5dzeilM6mymMyLT2.y5+9LuM
r84krVys4sg21xVy8VXmqdqpjqTO2vsuDOOz+zOUCSk+nnZ8CRdtxNKlPhV5
u.QCi6tD528Igrz+vCUscinR+FMfQdcPKNlQw8iJJLKn5rueG0qaneMed2GK
bjIqJq0u3ySjEHuLV05KRHJk1Qg.hKzAeR5PNlN3DuCPJYa3Jt7AdEKqzr17
6maUsbCyrNhFA6eicTw2adUdRVgXaK5K3wYgoTyVQhYqHLAH6KdTF3yQwlZQ
k5tnzwwvn3zNVEYL7gDfXXH.D7cFKZcciSCAMTL3SKVLDaEUvfFKFf+3iEq3
+PC0w9ormPRMq4H+kH7xwYlChL6JXeabY5k2VnNal8+rLyAA9e.lYZ7mmjKo
XsTT7WiLLNvjQMECaB0PPEbkZA2QRudG2.rwykBkdKcTxTmKPUxa3UEnxZVw
XoYX5.ZFmNF25SQSLjzjk+DpkqP40ksHxXYJMvHHQM4cRR.RPh5CHSUnL8O4
kbl7rrzHTs30q169RTOkXnbrsDXR7XrwziYNIEPlWHxOejZ2jh5Jl74NBe3W
Wbroo98BTgu+32fSP5CkH2x1wKdPOlFyGXJkTjsUY6oY1AtOyiuIiWLPK+hB
8CmbCqo4vzlYM6zvJcLtXoz98Vh4RHEHQCRLfNTsFw+UFcCMWKY4bTASwt+9
uVNMZiSLAR3vXn3cDf7dGeeiD8kUXz2Pgir1sjXK0rwNwIPwy.fSJLM1EYXm
Mq..Y1ID.Y2cnvyRttZZtnaJ13eRvVlkNFkuSwO7+S32K1On4GjIx+pNAzTI
XuNisdEHNLCHkW+1THXuGZOAAyBhGkNpNqspt5xkacYqko2fHSiPjfW9bhZk
3vK1WHbFxs+q.gIXjuyEbdU2WpMMI1d3jwiw88DkahgT+YU4VQwxt5Az0G7a
z05D9EpuR2ok550dR5Oc195EHg.UwMdTRTp50qK4iNXkDNTFBJ+6TncuO2Y.
T0czIkhV9nOZYh0e1dzxww.oFOJw3Lyxien4vcB9O1IZEYhRg54gHUuZk1y1
R.yB2evJtrN+IdQgjstMWVWVN7nlxKE4OodTVuc8iCG2Zcd73GvNwtimHa8l
5h+3XrxpkE5E+fQdum4TeK7FFE4isW7upwP6gcbXeSYs52K06uMrCsdd8pDF
Z1Ln5UJpd6eJKyZua7+zV1VuUl+BS60zzNSGV7E7Vknh00q6faR2df17c3ld
cO7jNPtB8adqmA5X6MMIjRc.HHvI1EBA.NgNhCdh3z8W.3p.E3a8flFR92ns
NZrqTZpadzvaEknN.D1GBjv2LjbxeHA.jHoVa8EQh5CERDG4zakZwSG5qZ3v
2JRh8+Pxmj3.IofPx3al2YvsJGIg3BRAPfjKpHDHxeQ7cEoIyIWxpPAfRXWb
xwT.nD1ImbHDFwNUHHDAtXmxImBARzaT1eipM98kUYinv7eBTeOCIQwcm+EM
g1cAiiRN7UHVbWMaP7oyFPtAPGc8rs1VrXMM63x19G2fptw3uWat8jEluJpr
e0zzlmj20Wr89wltM8XRc+jJcyjak1tA2GE3YeVcepxpshdv0DddWiv5tt65
brsgY4lo474+Z9+wNC.Ez
-----------end_max5_patcher-----------

Ok, it looks like it needs t b l everywhere, instead of t b s, as l passes on symbols, ints, floats, whatever, whereas s converts items.

2 Likes

ok I’ve changed it so it works with labels that are numbers or strings, and added the convenient speedlim autobang too. Next, new features.

I cannot find the “helpfile” you had made, which post is it on?

Cool, that’s what I have. Did you just use t b l or something else?

The helpfile is in the first couple of posts, but I think this is the (not fully tidy) version I have at the moment:


----------begin_max5_patcher----------
5154.3oc48j1iiajcetmeEDJIHWskq6hLeZVmIYxh0NwH1KLBLVzfRpjZ5gh
Tfjp6o8hc9sm5fjhTpHUoVkTKC2MPOb3U8tupWU7u9t6lLK+yhxIA+aA+bvc
28We2c2oOk5D2U++uax53OOOMtTeaSVllmsc8j6MWZYdw53J0EX0mIYg91xm
8KeEA0baahKhWKpDEOHxhmkJT2Bn9Zx2VRVpnR+5g6NY91plyhZeMUyeLIa0
CEh4UFfFhnfof6CPrH0+T+ePSAA+k5Gx7dpdYiv7DSlbevjYwYqlD7WT2we6
cuS8m6cD+yDOKwsFDqR7YMfHAsOETHeoh.vz.3zIVnFrI1vXrULFNFFCzHIF
o+mvHGv3WEldJbZ9UfSC43qJmdsnrLdk3.VcgHdgM9K0J+Ecp7WLQgXPBWyj
wWJt6rsUU4Y1vChm3kiJCGxmxo2GvAFDjz72gQS+qxFrRjIJhqDeHtJ1Fk.L
wcrE3B1Rz3YD7.lp9oDE0HQMVHU5RREOIJJSjbpci7cSh2royouqyinP8eIW
+hBuu8TIYlSAaOUg3oj1WKn8zwERfuRB4aKzz8Iel0HNndO4KDEYaSzOj4jR
tPMLoo2YRAlxMwyMOrhszb4cjCpV+EBzzBZnVNmFEtiZH4mqRym+IwhNDVoD
wFQVR1lBQoHqJtpF3au7Bwx3soUOrLOqpL4W0P.TRisc8k0Pn0KpvAM3+GJR
hSaQfUEIKxyT.QOVg5zMCmjUS03FsKxnuir3MVdXoTljrLvEKkH41xYwEJNU
s5Gp4hU44o8uT6ykJVVUe4MIYY6QEqx2L7EKRV83HO6rb4EWO16VekxG1lYt
5CRYhpGJiepO0tJNMsVor+q+ywYIRuLhpDCKP5pq4hFSPOVNuHOMsG9ZtxSV
txBoP9bwyIKpdTOPcEFj2dxlFgnIsb4EIqDkU8OWU7px9mor5ECQuyo1NqVI
9gJw5MoRrn+MH0NRJqJeL+4x5arQPqKAXWvXcUp6Zgq24GyRWeqcUAyBlmJh
K5d0NF6PcOuM6cC6sdH6djPkx.SqRPOvl2HV4ktsMfpwb+cMl7qM37JINZLZ
.rGNH1CFD6gtf8Hs+MLn4uNf88tk44qWKM20STRC6YKDeticXuPgFQ7Y11kK
EEeInLQJaK1jmjUE79x30aJCvCPSob+KRgQZ4HrQbBxcTpRFJqL109QC5IZV
+nD2KBiBIYZ.pSa5.CFx3oKxEEMUFkAQ5YEBhZ9EBvbU1BtQo7KwYDApuJ.N
Dkg5eJCLhpHMXDaJLb2uHBQRTzTsiSZT7xqE0oJHIX1PzmKfdUM8AAhlhh5H
6.gRC3H2oOWDUrQnSaDhO0ynzPzrvAoY3yUlR5fCRns+xHPUzsrSwxz0hbs8
WSFzbMI5Un1gOBIhSTjHHGLEi369kCUloNsHBZ92qoZ3Wqh.ELcHGb.+anBg
M0yQlVDpqkJhzFNgdKJSUDmsHesThG.FhNAubzIYTVHZGsOUV1QtQltUrmSw
W.640AHggSwrN+xk96Hu01yGKjowRQgeAjinlxrIib5.5DldiExToNdxkAwK
VXB.+eXgCt9njWg3EzIwKqQZB47aL5lxqGUZdJXPCTT+65yj9WDZpT1Z2ObI
AhQt8c7sLcaxhoKhqhKEUx.rVGml1oJoGP.YuBYLraxXDYFzcBcffIJ6Z7Si
F1l.ncJ3th0kljMTIXzvn551Isk4aKl2LtMlqB5CeKDkUIYs0t7m2Q8T2nSr
1SEJTx1AHWfB7kDJH2DzBrqPA4RCEPGfBUD4WNnvYoSvkDJ.NBEpD3TDsKBT
nIztninR89hQKzubWjKZXcWNnvINB8RBEraA6EMnnaRmWJn.4pXA6BCDNwOt
jREtZxBMHLTexlYsbhZpoV7fYZ3dHtppHY11JS..cmG1SZ5hVklOKNcu43w1
rI8tc.mmZMg8iSqaLZLfe5OAHLJr6rYyPWpVTnJe0pzVj7o3cDy9WoaQrvi0
7BP+z7BMD.Fi4ZyKXhcumPWqz1HxcOEmtUju7vI4uK1sccin+xkpPbUxns5H
ctyjrjJ0DZaPhtQNe3McHQq2cklmsxNyn2ssVxNG5UT9XdQkCuiFhH5cc0k8
pVSlp0lRS9UQveOzlLEz2JNlVe3v7j8khSyjFtOhVE+IQYPMYnLHuH386j8B
pxCjI6ELOOUQO1befpsFtOHNaQP71p70RqryCZnUFSt0CfxD977sloojbHED
5q9nQpjoHfzH3THEDRnDNkGBCAp5NPMlizSx5qwZijJ0uondLo+DuNoPhiKL
87.qsYBljrRRTDySSl+otnk58ookFfGLESh.n6sbPGcwdIU6ReXkJVEO+kdi
0nV4ZkEZ6FwYq5.k5TtAS4ggHLUcDgCngg8gQqowO4vVmI3axSWLwECoREB1
97SS6Mh.GqA+5WZDOYRPSRlIkqs0oe3POYP.iTUu99.BqUz8xXPXHzbUg3kx
4wVckhX9FKMcAwkCKkfzLQgMFFyEUIIRlr13LEB7UOqFY5xM.ZJj.HTHDhBU
EKEdxcv58sXbGnD3QgAb6D3zi1Q7jX.hqiVhPoSAPHHJhqpIK.DRsME7WZIe
B0Jx5qXjkVOMx72FXKyJqEE5s.aHuAr1gZq2BwFQ1BczK1hlahuRBvnYShlh
XQg.jw0EGxujQ1cDb13I2BmF5IrtwVtUzNDcs8e8XYpErE5cOWQld46pq2N+
EUXk1PQhmQQrAEwgWaVXQbR1r7msgiHeiilvrNrUTuz3nJ+nXa5kPfuQQTzk
kMNTpk+KwooAxvvUU7JMPlGfD.CRJC96.+iRSw4AKEhzfkEBgJMyskhf0wYu
HeffXog5LYt+AZzxZFkHKNpi7TJkPJVoTGBfSQDHJRMCiHXHlox4IB2rFb7J
sZdrDsSkDkYBEoPldcYve9OFrTlO9ZcUCWDnmP+RmoFbuQMz87.iYI8Zy5R5
USLFb8FgoWg0aDDUunSXVRz7sXwG8uFXqTSXruhHqFeiPG5l1E2Xu5DpG.ca
ZRLNjZCsQdFsonoDDfQ3QTHkgoHhs1Byin8Pp5J69hxJi9rxb2pjmDYA0MVg
y52dp.ZTyJnLjvUR.QmmB8PN6PLlsHPi7CKlB0wVGRwNuHP8JC8w7mDEA5+n
bfYrSG7R91fmikbXoysUhp.IPrYaUv+jxj9lz3WlEO+Se8yOFWoVMe+yVY6X
KzLOYVmXVvvTHXJ+.eblNoQsZS8aolEp3AjDjGEpnADA4K0Gi9vWi+Pi7eO5
1hjREoxUcBD0ODGFW2E2vP5T99VJgL3YohbyURY3kslxzagZJabAvQuQUT9l
imivWTdN4smmiMqx.oW9Cig+2m7b1Ekkie6Y4LSZa1iu82mp4jKJOG81yyQl
xpBiZXu+9iICur1xg2.1xIWYd7PAvllGuHHNneivaKwFjuxMaGhCgrcXtOmk
fcqRjdRUgdp7QlFBCFhlhCkdhobNjDRvbZ+0erGKqfDvDAChWmRNmniiWxTk
N.uXX2lDW+VP4AwXtmJjhY1.n0azTW6jrKDK1NWrPkUHR0kRXYxgxaTse0TF
rUUu3f3zU4EIUOtVkXoLMxhf4OlmL21L9A8T0Sv.zNUT0JI+bTQGaykJnRTV
8PZxrh3hWd.A1jN8WJsV6TDvm64TF1MjDckm8x8VrQhOGqVSaVPW9oXnBeLz
MRyAqyWbbzcnkQjmX50X7zZ4daUHcRGOpGt6FcJr+A2hir5UxrL1rFmMDbwl
HslsRm1d+MQ7rdqNJIMo5ktXS9xkpBoVGOkNPkcPiYSjZQQ7pcaNPMTLcvYU
OJ8fr5wtm+f8Yn9W3oCuvrUp8EqdmIuXgYy7p4LwEqpWUYSde8jzuaZAkmyz
rBxPH6DQUCOpm5wlz7puLURr1DayAfmJjNsYyqwRF0LPcabAtZFHLt4WlTUU
DmUp1IBsf5zvyWGAcN5HRymLNLDR.leH2q1PVdChNnKgpwZZvwsw3oXGpSSq
tz7P7ahyjsqi27kf2KA5NQNfCduZ0kmo1x+j1IPAuOoRs++ouHED7dIZuHor
xbM4ylIRV83LYvExK6Zcoi7iKpZpXD0RYLiLgkQGillJwCO3w5j7XOhrUnWo
J1T0fb1UyOtpo42lXM96V1u5dZ5J0cxf9oMrjRDchW6zmDL880eoNaP68WPV
0H+AKDqdqWxgVIXcVSbGPeccfTQ7czQBF4iQp6ZKafAxGiCC3v.0a01MYcxh
59AoYC.1zrObiHODxnSC41NABgOzANkxmZ+ZmIp0vwGE0vdfFRbgYoWBovyc
jXtysNuAh5v.w8gJEg3BwC3iQB6xHA8wHgbUf.ctiDzepu38UewuopuDOfY5
YkgFBsjsnBqN1EutHL1E6UHeHehcwLBwGCjKlQv9vfE1EwELyGiD1QAyy0XO
1EqHXe3.CCtZDuqj+KT30BiPrqkVK57s0iwlc98gs5wPG+xWWyhHv0JTDWz2
TMN3YqY2jgv3oQ3CTRmAnqIRXWnQ0hipVRGOEinDDhi45kLnZqpMjY+RmMTe
Brb6PMBz.05k5YywmKfc0T1gjq1HgtZiD30MRl5Cr2GYB0fr2GWh89vRX4iJ
wvePI1+iIgdKYwrw5uWQI1UH1sKRx+A8WEgG9NQ1VSwTZ91MzmVLa0xjzz1t
Xn6lpQSYQlzc0xc2jdMlAJh.gg5Fx.h4Hl9H4ATZ28hGyy.adHBsoKNHLowX
SuRnZZBbuokn9wP6FK.LxLB.oK.h4H4of8ZwBIsTsNYzkcj24SYvlh7M4Ese
NLlhiZu+sU4qJhWjTuAxC5s0YbesnTg7p6+8LXxZIAMo4Y5J50xL91syiGiA
z19IOjjoDiDsnKNBA0nKpkdg3gDbez0INXK1M.SzQBae1XXKyKrtQWTGc..t
OajQkCh5dYpe3liLuoKBWrYyjQjJ0tjOWOTmi.LCz.YbjQ9KD.fj8ow8dJoi
Do+KM9FQIbMNDRjgVnoFTV6y0c9QjlQ9e1HxB9g3rxfePrNYlpCeZu0dCfL5
FnoGhPQX4XXjBfRXsObEOetDa62pTJoESGR0PnU5ij8dRI0X89OJOTxOLLT.
LLzbj7sfZZzJunP7cwUUioPz86NyOuyHRuYqRddf2.nu+OT8f9w.uJ8TyboV
+mtj38.3t0cVu68dXqiEIkknFcCoJEG+aaEcmeLOqoefxpAAscz9rqN5plYy
zt5YDU42ynqS3.MEUQPwGW87XV+7hD8O8i+miIJ2FVTegCkGbsEPHBRYFaHJ
9l1ySzPh0g2BRntYz6MOfB6BnPFlQzRBPNgEEUeDHZT4y+qWVTjuRj8iZBqU
wTnJjLiKIkrolOxaBNabwTJfyzzC.ihgFfSJVfbvKBgAg.SLcQHFQSeoQPol
uOEw0SxXyR9+TDyGzb84ZfO5DUDrDU8NKt3HtwdINp1Ri5TTrejm6QPBaiy7
vidUZAiJr6Flsuv9GEYhmhGJXoZKu1N5Hh4G8Q8or52zoC4sKwdXDAgsrTP8
QdGr9PaW6bCATeLNI6KNBURYtVyaGdj+AsxmSZ2AFrCbGHoAqMcr6OWDXBcS
AT+oxzjEM8lncXxdRYtpPumokAsSeDbdLeYWS6CeaSGA4pdnMb0FVvN3l8IX
KymqH4yyqJROCn2q.jZ497kwK50oY93VQB4+Negn7X4NaOhjWiK+a.D93lPN
hI.uBMc12Dc2d1gNMu.f12mLu53zp2b942q9nDWcyEswOLOei3TrX3pGp8RL
podHQX0OWJYgeLdlyJLthH1jbNpUDuhT6sDScS5wtmdKIBbYMb7ic10t8Q3r
ivTvx714PySPvPcNfj5oUwmnzed8QlXoqXfl+T7SBUO7+E+FpIPMqr2+lktw
h3hO8UYpOz3eUms7sSoTGjV0Rd6DH0NURgZr7vpebhUu8Lp4G7HxrduRGdud
e8qzgEyJGsPwdQR4WpWEX.P8J3zGuJzoKusq11GbvvEMiN3jhLZYcAdrZatM
L+lPFb+IwXVpP5xzLmieSd9ml3MQtjrO8ZjPtu2esV+01aVRU.gsNlwLfz7y
dwWcfHytZdqucb2ifmuLi6v1UzH2UYlxcfareodczCxoNL1lUsi+TVKLxHOl
WTS9jImreR0ZOu0AKkpBk33gPuesQ.Qj59OHJBGxqOhG5PBBr1fMnslSaTC7
GdsN9yL0xPyqyc+garK69S23BsHKF1OiHdstqeQX8hhy8r7PXJJpueMkto24
C8Vos9iWb1QXF1NY6GdzHVf2sU9b3QWQW7mSep0W6vMtnYUQdZEcqSO8483a
MKt1uIcqn4KjjiyvgpqD40ys9NiQQd2DTM.Vj+b1ICgWGijFH7e+k3SG.AnH
pYV74bLFYzcPPYfV9G.+XgP7JfPM0qslZPlJxC+CbemzxVVU7ICdgD.iYp1G
C.YZ+CbVDLh5eX7+Ur3jgOda7nv17e.0dL7M78+IRSyedbP7v9liFA.gi5yE
QMMohZs+qCxV9LTB8hg.neKh.5ou3i4ouBQj1pWPkw0PM8CTWWZdA.2rsXS5
qK3Adaq8QfTo9u1HkxL.czTTv.BvDXDhBXQZk.THkg7ZuJUHlKRdZ7YtylLQ
aVS6vIf26UvBSJJerc6FzozBNp.g0b6HR6fQ09O30sMsTHOxqdRJEYKJu07f
riHOtt2dctJGB3lILhv.Q0sYNGd79265nvVEu4X1A6TLpuMtJO3aUYgNwaie
YkX41zzpiNAK62ykgTJzTQbFliMKyBlT6hMh7qZstv02JqMDeUED7amM1fTm
LNgB4gl3LvsRxXTDNJ7bvo2776Uaxe2TqWfmUUy4kSu3mvnHfI5OobFodJsY
..F1uAqGzImaqbl8Pb0dkvtunxVKsGPIBnStEWy4kFPpm4hQZJyOjTT8Rv+w
p7Wk5rYsyomAO06rbSMKTukB8t+169+AVrMno
-----------end_max5_patcher-----------
1 Like

Here we go, an upgraded version that has a click-to-query argument (instead of all hovering which you can put back if you want) and also has the numneighbours argument passed on. I hope you enjoy.

Archive.zip (42.9 KB)

1 Like

Ok, here’s an updated version which rescales the points based on the range, so it looks more like you’re zooming in and out.

I also tidied around a bit, and added an button for saving the date based on the last edit, so we can keep track of versions of this.

fluid.datasetplot~.zip (45.7 KB)

1 Like

I’ve modified it further to cap how small these can become since if you look at large numbers you get in trouble (and added time for the versioning (with a savebang at first but this was not doing it before the save so useless))

I’ve also rounded instead of truncating the int conversion to the drawing.

I think the click should be called idle so I changed it - it is to decide if it outputs on idle after all…

all changes up for grabs or discussion, as always :slight_smile:
fluid.datasetplot.zip (46.7 KB)

1 Like

Nice. Good additions. The dots did start getting pretty small if you pushed the scale far, but I figured that was on the user. But capping it is nice.

Hehe, I like the addition of time to the versioning. Gotta new if you’ve got the 12/3 morning or 12/3 afternoon build!

I was going to add the option of changing the background color, as per someone’s comment on twitter, but then I remembered I did “white on white” as I couldn’t figure out the appropriate jit.op that will allow me to overlay the dots and the circle without the respective background colors interfering. At present I’m using jit.op @op * as multiplying the little dots and circle by white left them as is, but there’s probably a better @op for that (or a better way in general).

Would may be interesting to build is some abstractions/wrappers that go around this that allow for more complex things (though too complex, probably, for being native). Like @tutschku’s desire/suggestion of being able to select points (via clicking or lasso) and deleting them from a dataset. Or perhaps selecting points from multiple plots and dump-ing the into a third dataset (creating merged dataset, but visually/sonically).