4 ms·
Does Scala have a visualization suite like ggplot, seaborn, matplotlib, or something similar? What benefits does this provide over existing python or matlab co
by gravypod 9y ago
Does Scala have a visualization suite like ggplot, seaborn, matplotlib, or something similar?
What benefits does this provide over existing python or matlab code?
> Scientific Computing, Machine Learning, and Natural Language Processing
These seem to be three very different problems. Is there a reason why the group of them is called "ScalaNLP"? If the libraries are generic enough then shouldn't other uses be possible/supported?
Is there a reason this doesn't have a generic name similar to the SciPy stack?
- based2 9y agohttp://otfried.org/scala/drawing.html http://otfried.org/scala/drawing.html https://github.com/spaced/scala-js-d3 https://github.com/spaced/scala-js-d3 https://github.com/fasholaide/Dimple.Scalajs https://github.com/fasholaide/Dimple.Scalajs
- gravypod 9y agoUnfortunately for larger data sets d3 is far too slow and will just end up crashing most browsers. It is good for small and interactive visualizations but if you want to do investigations into large data sets you need something else.
- based2 9y agohttps://www.reddit.com/r/scala/comments/1yshln/canvaslike_graphic_output_library/ https://www.reddit.com/r/scala/comments/1yshln/canvaslike_gr... === https://github.com/sterglee/scalalab https://github.com/sterglee/scalalab src: https://stackoverflow.com/questions/5612846/scipy-like-functionality-in-java-scala https://stackoverflow.com/questions/5612846/scipy-like-funct...
- gravypod 9y agoIs there any ScalaLab documentation? Why is this massive repo only uploaded in 1 commit? Something that people really like about SciPy and Matlab is that if you need to do an operation on some data they have documentation that will show you exactly how to do it. Very clean explanations with input and output data shown.
- Cyph0n 9y ago* Terribly formatted readme [x] * 4 commits total in the ScalaLab JVM repo [x] * .DS_Store committed to master [x] * Book published way too early in lieu of actual documentation [x]
- dlwh 9y agoMain author here. Breeze has breeze-viz, which is very basic but at the time there wasn't anything else. I highly endorse using something else. I personally like http://sameersingh.org/scalaplot/ http://sameersingh.org/scalaplot/ They're under the same aegis basically because they're all mine. ScalaNLP started out as really being just NLP, but it scope-crept. That said, Epic is a library for structured prediction first and foremost, and one of the main applications of structured prediction is NLP. Breeze is basically like SciPy and large chunks of it power Epic. It's really the only thing that doesn't belong in the namespace.
- gravypod 9y agoI'm glad you're bringing something like this to the JVM/Scala-ecosystem. There are some things that I've been interested in asking for in a high level scientific computing library. If you're planning on continuing your visualization library can you please come up with some solution for layout specification? Whenever I'm plotting something and I spend 30 minutes getting all of the data in order the last thing I want to do is fight with the plotting library's label positions because they overlap. Or if I say "Let me take this plot, add some more stacked subplots, and show different catagories" I don't want my labels to be perfect but my scatters to be given a 10x10 pixel box to draw into. On the HP/numerical computing side of things have you looked into implicit GPU operation types? Something that would let you queue up operations that can be run on a parallel computing system. Basically describe complex operations with the high-level object's normal operations. The objects aren't actually calculating anything, they just organize a GPU kernel in the background. As the final stage you can turn the gpumat a(3, 5); gpumat b(5, 3); gpumat gpu_op_queue = (a * b) + (a * b) * 5; function(a, b) operation = gpu_op_queue.compile(); mat output = operation(some_3x5, some_5x3); In the backend you'd hopefully be able to great your own types like 'cpumat', 'computerclustermat', or 'gpuclustermat'. If you had some easy way to generically express extremely parallel numerical operations, an abstract way of implementing high-performance back-ends that take those operations and compile them to GPU kernels, and a visualization engine that doesn't feel like it's from the 80s then your library will really take off. Personally I feel GPU-optimization and fighting with visualization libraries are the two biggest pain points in scientific computing.
- kodablah 9y ago> What benefits does this provide over existing python or matlab code? The language and ecosystem for one.