Database Reference
In-Depth Information
Adding lines to scatter charts
So far, all the recipes in this chapter have only created one type of chart. Incanter also lets
us combine chart types. This allows us to add extra information and create a more useful,
compelling chart. For instance, showing the interaction between the raw data and the output
of a machine learning algorithm is a common use for overlaying lines onto scatter plots.
In this recipe, we'll take the chart from the
Creating scatter plots with Incanter
recipe and add
a line from a linear regression.
Getting ready
We'll use the same dependencies in our
project.clj
ile as we did in
Creating scatter plots
with Incanter
. We'll also use this set of imports in our script or REPL:
(require '[incanter.core :as i]
'[incanter.charts :as c]
'[incanter.io :as iio]
'[incanter.stats :as s])
We'll start with the chart we made in
Creating scatter plots with Incanter
. We'll keep it
assigned to the
iris-petal-scatter
variable.
How to do it...
For this recipe, we'll create the linear model and then add it to the existing chart from the
previous recipe:
1.
First, we have to create the linear model for the data. We'll do that using the
incanter.stats/linear-model
function:
(def iris-petal-lm
(s/linear-model
(i/sel iris :cols :Petal.Length)
(i/sel iris :cols :Petal.Width)
:intercept false))
2.
Next, we take the
:fitted
data from the model and add it to the chart using
incanter.charts/add-lines
:
(c/add-lines
iris-petal-scatter
(i/sel iris :cols :Petal.Width)
(:fitted iris-petal-lm)
:series-label "Linear Relationship")