Skip to content

Instantly share code, notes, and snippets.

@dacr
Last active May 8, 2023 20:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dacr/43ae1aabe27b2e4e5f1cd75fe41ed5cb to your computer and use it in GitHub Desktop.
Save dacr/43ae1aabe27b2e4e5f1cd75fe41ed5cb to your computer and use it in GitHub Desktop.
smile scatter swing visualization / published by https://github.com/dacr/code-examples-manager #5ddf60b5-e2d9-4740-9f32-11b8254f54e5/7a4971ddc4c380a8306c23a7d18d4bacaab9a131
// summary : smile scatter swing visualization
// keywords : smile, chart, visualization, scatter, swing
// publish : gist
// authors : David Crosson
// license : Apache NON-AI License Version 2.0 (https://raw.githubusercontent.com/non-ai-licenses/non-ai-licenses/main/NON-AI-APACHE2)
// id : 5ddf60b5-e2d9-4740-9f32-11b8254f54e5
// created-on : 2021-03-05T09:23:01Z
// managed-by : https://github.com/dacr/code-examples-manager
// run-with : scala-cli $file
// ---------------------
//> using scala "3.2.2"
//> using dep "com.github.pathikrit::better-files:3.9.2"
//> using dep "com.github.haifengl:smile-scala_2.13:3.0.1"
//> using dep "org.bytedeco:javacpp-platform:1.5.8"
//> using dep "org.bytedeco:javacpp:1.5.8,classifier=linux-x86_64"
//> using dep "org.bytedeco:arpack-ng:3.8.0-1.5.8,classifier=linux-x86_64"
//> using dep "org.bytedeco:openblas:0.3.21-1.5.8,classifier=linux-x86_64"
//> using dep "org.slf4j:slf4j-nop:2.0.7"
//> using dep "com.lihaoyi::requests:0.8.0"
// ---------------------
/*
sudo apt-get install libopenblas-dev libopenblas-base
*/
import scala.language.postfixOps
import better.files._
import smile.read
import smile.util._
import smile.math._
import smile.math.MathEx._
import smile.math.distance._
import smile.data._
import smile.data.formula._
import smile.data.measure._
import smile.data.`type`._
import smile.regression._
import smile.stat.distribution._
import smile.io._
//import smile.plot.vega._ // FOR VEGA RENDERING
import smile.plot.swing._ // FOR SWING RENDERING
import smile.plot.show
import smile.plot.Render._
// examples coming from http://haifengl.github.io/visualization.html
implicit val renderer:Canvas=>Unit = JWindow.apply
// --------------------------------------------------------------------
val inputFileName = "iris.arff"
val inputFile = inputFileName.toFile
if (inputFile.notExists) {
val url = "https://gist.githubusercontent.com/myui/143fa9d05bd6e7db0114/raw/500f178316b802f1cade6e3bf8dc814a96e84b1e/iris.arff"
for {out <- inputFile.newOutputStream.autoClosed} {requests.get(url).writeBytesTo(out)}
}
// --------------------------------------------------------------------
val iris = read.arff("iris.arff")
println(iris.summary())
// --------------------------------------------------------------------
{
val canvas = plot(iris, "sepallength", "sepalwidth", "petallength", "class", '*')
canvas.setAxisLabels("sepallength", "sepalwidth", "petallength")
show(canvas)
}
// --------------------------------------------------------------------
{
show(plot(iris, "sepallength", "petallength", "class", '*'))
}
// --------------------------------------------------------------------
println("enter to exit"); scala.io.StdIn.readLine()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment