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")
 
Search WWH ::




Custom Search