Exercise: Bubble Chart and Hex Bin Chart
Use the concepts you’ve learned so far to solve this exercise.
We'll cover the following...
We'll cover the following...
Consider the following dataset describing the average download/upload speed in European countries from 2019 to 2022:
Press + to interact
Python 3.10.4
import pandas as pddf = pd.read_csv('data/average_internet_speed.csv',parse_dates=['quarter'])print(df)
In the following terminal, represent the data through a bubble chart:
Press + to interact
Python 3.10.4
import pandas as pdimport altair as altimport osdf = pd.read_csv('data/average_internet_speed.csv',parse_dates=['quarter'])# build the chart# use mark_point() to draw the points# encode the average upload and download speeds in the x and y channels# encode the country using the color channel.# highlight the color of a single country (e.g. IT), using alt.condition()# chart = alt.Chart()df# uncomment the following lines to show the chart#chart.save('chart.html')#os.system('cat chart.html')
Then, represent the dataset through a hex bin chart in the following code widget:
Press + to interact
Python 3.10.4
import pandas as pdimport altair as altimport osdf = pd.read_csv('data/average_internet_speed.csv',parse_dates=['quarter'])# split upload and download speed in 5 binsbins = [1, 51, 102, 152, 203,254]labels = [50, 101, 152, 203,254]df['binned upload speed'] = pd.cut(x = df['average upload speed'], bins = bins, labels = labels, include_lowest = True)df['binned download speed'] = pd.cut(x = df['average download speed'], bins = bins, labels = labels, include_lowest = True)# drop null valuesdf.dropna(inplace=True)# the shape of a hexagonhexagon = "M0,-2.3094010768L2,-1.1547005384 2,1.1547005384 0,2.3094010768 -2,1.1547005384 -2,-1.1547005384Z"size = 25# Count of distinct x featuresxFeaturesCount = 4# Count of distinct y featuresyFeaturesCount = 5# use mark_point(shape=hexagon) to draw hexagons# encode binned download speed in the y channel# calculate the position on the x axis through transform_calculate()#chart = alt.Chart(df)# uncomment the following lines to show the chart#chart.save('chart.html')#os.system('cat chart.html')
...