Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

How To Facet a Scatter Plot with Altair?

  • Last Updated : 03 Jan, 2021

In this article, we will learn how to Facet a Scatter Plot with Altair. Let’s recall some concepts :

  • Altair is a statistical visualization library in Python. It is declarative in nature and is based on Vega and Vega-Lite visualization grammars. It is fast becoming the first choice of people looking for a quick and efficient way to visualize datasets. If you have used imperative visualization libraries like matplotlib, you will be able to rightly appreciate the capabilities of Altair.
  • A scatter plot (also called a scatterplot, scatter graph, scatter chart, scattergram, or scatter diagram) is a type of plot or mathematical diagram using Cartesian coordinates to display values for typically two variables for a set of data.

Here, we are making the scatter plot using Altair library. For this, we use Chart() function in Altair to load the data and then use the mark_point() function to make a scatter plot. We then use the aesthetics x and y-axis to encode() function. After making this scatter plot we will facet it with a grouped column values such as clusters.

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

Steps Needed

  1. Import Libraries (Altair).
  2. Create/Load data.
  3. Use Chart() to load data for plot.
  4. Use mark_point() to scatter plot.
  5. Use encode() for x and y axes.
  6. (Optional)Use properties() for setting width and height.
  7. Use facet() over scatter plot with clusters.

Examples 

Let’s understand the above-mentioned steps with the help of some examples :



Example 1: 

In this example, we draw a simple facet Scatter plot with some dummy data. That is shown below:

Below is the implementation:

Python3




# import libraries
import altair as alt
import pandas as pd
import numpy as np
np.random.seed(1)
  
# create data
df = pd.DataFrame({'X':np.random.randint(1, 10, 50),
                   'Y':np.random.randint(1, 10, 50),
                   'Cluster':np.random.randint(1, 5, 50)})
  
# Draw Facet Scatter Plot
alt.Chart(df).mark_point().encode(
    x=alt.X('X'),
    y=alt.Y('Y')
).properties(width = 200, height = 200).facet(
    'Cluster:N',
    columns = 2
)

Output:

 

Example 2 : (Iris Data From Vega Dataset)



Python3




# import libraries
import altair as alt
from vega_datasets import data
  
# load data
iris = data.iris()
  
# Draw Facet Scatter Plot
alt.Chart(iris).mark_point().encode(
    x = alt.X('sepalLength'),
    y = alt.Y('sepalWidth'),
    color = 'species'
).properties(width = 250, height = 250).facet(
    'species:N',
    columns = 3
)

Output:

 

Example 3 : (Cars Data From Vega Dataset)

Python3




# import libraries
import altair as alt
from vega_datasets import data
  
# load data
cars = data.cars()
  
# Draw Facet Scatter Plot
alt.Chart(cars).mark_point().encode(
    x = alt.X('Displacement'),
    y = alt.Y('Acceleration'),
    size = alt.value(100),
    color = 'Cylinders'
).properties(width = 250, height = 250).facet(
    'Origin:N',
    columns = 3
)

Output:




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!