The last method we need to cover is filtering. What is filtering? The basic idea here is that another thing we can do interactively in a visualization is to filter out some of the elements that are currently displayed on the screen according to some criteria. By far, the most powerful and common method here is what is called dynamic filtering. What is dynamic filtering? Dynamic filtering is the idea of using sliders or other types of user interface widgets in a way that you can change the range of values of a given attribute to tell the system to visualize only those items that are within the ranges that have been specified. Once again, in order to make these a little bit clearer, I'm going to give you a live demo and I'm going to use the same example as before, same scatter plot. The only thing that I've changed here is that there is an additional element. If you see here on the top right, there is a slider and the slider is now mapped to the attribute water. Note that water is currently not mapped to any visual attribute of this visualization. It's only mapped to the slider. So, I'm still visualizing the amount of carbohydrates, the amount of calories, and the food type. Now, look what happens when I change the values of the sliders. So, if I move the slider towards the right, I'm effectively telling the visualization to show me only the data items, only the food products that have an amount of water that is above 53.2. So, I can go on and see. Now, there are food products that have a high amount of water. Okay. What is interesting here is that all the food products that have a high amount of water tend to be clustered around the origin. So, low amount of carb and low amount of calories. So, let's see what happens at the other end of the scale. What is interesting here is that I can move the whole interval, go to the beginning of the interval, and now basically issue exactly the opposite query to the data. So, these slider is effectively telling the system, "Show me only the food products that have a high amount of water." What do we see here? Well, we see that most of the products that have a small amount of water, all the products that have a small amount of water are much more scattered. So, they have a much wider range of carbohydrates and calories and even though, most of them tend to have a high amount of carbohydrates and high amount of calories. So, let me show you again what happens when I move the slider. I can show different sections of the data according to the filter that is specified by the slider. By changing the position of the slider interactively, I am effectively issuing different queries to generate different filters. It's a very powerful method and also a very general purpose one. As you can imagine, I can actually do exactly the same thing with additional attributes. In principle, I can have as many sliders as I want and I can also combine these sliders together. Okay. So, I could for instance, have one slider for water and one slider for protein and combine them together. Before I conclude, I want to show you what happens when the filtering is actually happening with categorical data. So, these specific slider is mapped to a quantitative attribute. But at some attributes, we know that some attributes are of different type. So, in particular, if we have a categorical attribute, what can we do? Well, we can do something very similar. Here we have the categorical attribute that describes the different type of food products. So, we have beverages, cereals and pasta, dairy and eggs, and so on. Exactly the same logic can be applied to this case. So, I can for instance, click on beverage and see only the elements that actually belong to the class beverage or I can do cereals and pasta or I can do dairy and eggs or I can do fats and oils, fruits and juices, meats, and so on. As you can imagine, again this is very powerful because I can interactively ask my system and my visualization to show only the elements that satisfy some of the constraints I'm interested in.