diff --git a/docs/404.html b/docs/404.html deleted file mode 100644 index 5f0d926c2..000000000 --- a/docs/404.html +++ /dev/null @@ -1,87 +0,0 @@ - - -
- - - - -vignettes/animint2.Rmd
- animint2.Rmd
Welcome to the quick start guide. My goal is to introduce you to
-animint2
in a way that is both brief and easy to
-understand. I assume nothing except some basic familiarity with R, data
-visualizations, and a little bit of statistics. Some familiarity with
-the ggplot2
package is helpful but unnecessary.
After reading this, you’ll leave with a sense of how
-animint2
works. You’ll also know how to make interactive
-data visualizations, sometimes referred to as animints. For basic
-animints, this quick start guide is all you’ll need. To learn how to
-make more sophisticated animints, take a look at the animint2
-Manual. You may also want to take a look at the animint
-gallery, which showcases how sophisticated and powerful animints can
-be.
Some readers may want to follow along interactively. Both
-animint2
and R have datasets that you may use. Access the
-dataset list with data()
. Alternatively, you may already
-have a dataset you’d like to use to experiment with
-animint2
.
I use a custom dataset in this guide, which I’ve named
-meowtrics
. The data in the dataset are simulated, which is
-a fancy way of saying that I forced a computer to make them up. The data
-are about ten different housecats and how they’re perceived over
-time.i Here’s a glimpse:
-head(meowtrics)
## Day Cat Coolness Cuteness Kind
-## 1 1 Clifford 0.16 4.50 Domestic Shorthair
-## 2 1 Junebug 0.36 3.70 Domestic Longhair
-## 3 1 Muffin 0.41 0.47 Cornish Rex
-## 4 1 Teddy Bear 0.47 5.10 Domestic Shorthair
-## 5 1 Diana 0.61 9.60 Domestic Shorthair
-## 6 1 Bello 0.71 1.90 Domestic Shorthair
-Data visualizations are commonplace, and for good reason. Large -tables of data are difficult to parse. A good data visualization can -illuminate patterns that would have otherwise hard to spot. In contrast, -a poor (or deliberately misleading) data visualization can obscure even -obvious patterns. How do we design good data visualizations while -avoiding bad ones?
-We start by understanding what data visualizations are made of and
-how they’re arranged. This arrangement is often called the grammar of
-graphics.ii This quick start guide won’t
-teach you the grammar, and you don’t need to know it to get started with
-animint2
. But you should know that the syntax of
-animint2
—that is, the way the code is written—is modelled
-on the grammar.
Let’s see an example. Say I want to visualize how people rate cat -cuteness over time. I want the y-axis to depict the cuteness ratings, -and the x-axis the days. I also want it to be a scatterplot. What should -I do?
-First, if I haven’t already, I need to install
-animint2
:
-install.packages("animint2")
I load animint2
:
Next, I search for the functions that I’ll need and put them
-together. First, I need ggplot()
, which is like the blank
-sheet of paper (or computer screen) the program draws on to make the
-graph.iii To make a scatterplot, I’ll use
-either geom_point()
or geom_jitter()
. Finally,
-for the axes, I’ll need aes()
.
Then I name the graph and put it all together:
-
-cute_plot <- #1
- ggplot() + #2
- geom_point( #3
- data = meowtrics, #4
- aes(x = Day, y = Cuteness)) #5
-cute_plot #6
If you’re unfamiliar with the syntax, the code can get -confusing.iv Let’s go over this code -block line by line:
-cute_plot
. You
-can name data visualizations whatever you like, but it’s best if you
-name it something that will make sense to your future self.
-ggplot()
-function, since I’m making a data visualization.
-geom_point()
, because
-I’m making a scatterplot.
-meowtrics
-dataset to draw the points in my scatterplot, so I set
-data = meowtrics
.
-aes()
controls the aesthetics of
-the data visualization, including axes. I place it inside
-geom_point()
and tell my program that the Day and Cuteness
-variables are on the x- and y-axes, respectively.
-Look at the plot. We can see that while there’s a lot of variance in
-the data, there seems to be an upward trend in cat cuteness ratings. But
-this graph could be better. And animint2
gives us the tools
-to improve it.
Take a look at this slightly modified data visualization:
-
-cute_plot_colored <- #1
- ggplot() +
- geom_point(
- data = meowtrics,
- aes(x = Day, y = Cuteness,
- group = Cat, color = Cat)) + #2
- labs(title = "Cat Cuteness Ratings Over Time") #3
-cute_plot_colored
Each cat is differentiated from one another by color, and there’s now -a legend. Codewise, what’s changed?
-aes()
: I’ve grouped the points in the scatterplot by cat,
-and I’ve also differentiated the cats’ data points by
-color.v
-labs()
, I’ve given the
-graph a title.
-While this new graph communicates more information, it’s also -somewhat overwhelming. What if we could move some of the data out of the -way? Or compare a subset of cat cuteness ratings instead of seeing -everything at once? Reader, I have good news.
-The good news is this: animint2
makes it easy to render
-a static data visualization interactive. Just use the
-animint()
function with the previous plot as the
-argument:
-animint(cute_plot_colored)
-
-This is an animint of our second static data visualization. By -clicking on the legend or by using the selection menu, you can control -which subjects have their data graphed, as well as how -many.vi This allows you to explore your -data without needing to facet all possible cat combinations. For -exploratory data analysis, this level of control may be all you -need.
-In some cases, you may want more control. Say you want to emphasize
-Archibald and Muffin’s cuteness ratings over time. In
-animint2
, you would use the first
argument and
-specify which cats to present:
-cute_present <-
- animint(cute_plot_colored,
- first = list( #1
- Cat = c( #2
- "Archibald", "Muffin")))
-cute_present
-
-This is most useful for situations where you’re showcasing or -presenting your animint. Pay attention to the syntax:
- -Our current animints use three variables: Day, Cuteness, and Cat. -What if you want to explore or present a -fourth?vii In a static data -visualization, this would require multiple graphs or the addition of an -unwieldy third dimension.
-Luckily, animints are not subject to the same restrictions. In
-animint()
, we can use the showSelected
and
-time
arguments to show how the Coolness and Cuteness
-variables interact day-by-day.
First, let’s look at an animint with the showSelected
-variable:
-associations <-
- ggplot() +
- geom_point(
- data = meowtrics,
- showSelected = "Day", #1
- aes(x = Coolness, y = Cuteness,
- color = Cat, group = Cat,
- key = Cat)) + #2
- labs(title = "Associations Between Cuteness and Coolness")
-animint(associations)
-
-showSelected = "Day"
lets you
-adjust the day in the selection menu.
-key
accounts for that when transitioning between different
-days.
-You can use the selection menu to see the different associations -between cuteness and coolness ratings per -day.viii
-Next, let’s see that same animint with the time
and
-duration
options applied:
-animated_associations <-
- animint(associations,
- duration = list(Day = 1000), #1
- time = list( #2
- variable = "Day",
- ms = 1000)) #3
-animated_associations
-
-duration
specifies how quickly
-the points move from their old location to their new
-location.ix The shorter the duration, the
-quicker the movement. It takes a list and uses milliseconds as its unit
-of measurement.
-time
also takes a list.
-duration
,
-time = list(ms)
specifies how long the points stay in
-place. It also uses milliseconds as its unit of measurement.
-You can also click the “Show animation controls” button and manually
-adjust both the time
and duration
. Try it
-out.
So far, we’ve been interacting with animints by clicking the legend
-and using the selection menus and animation controls. What if we could
-interact with the animint directly? Using clickSelects
, we
-can do just that. Let’s return to our data visualization depicting
-cuteness ratings over time, this time as an animint:
-cute_colored_again <-
- ggplot() +
- geom_point(
- data = meowtrics,
- clickSelects = "Cat", #1
- aes(x = Day, y = Cuteness,
- group = Cat, color = Cat))
-animint(cute_colored_again)
-
-clickSelects
takes a variable
-with quotations. The variable in clickSelects
and
-group
are the same: they’re both Cat.
-Hover over and click on the data points. You’ll notice that it has -the same effect as clicking on the legend: It removes the data from the -animint.
-Now, let’s interact with a very similar animint:
- -
-cute_plot_kind <-
- ggplot() +
- geom_point(
- data = meowtrics,
- clickSelects = "Kind", #1
- aes(x = Day, y = Cuteness,
- group = Cat, color = Cat))
-animint(cute_plot_kind)
-
-clickSelects
and group
are
-different. This is a useful way of adding another variable to your data
-visualizations.
-When you interact with this animint, you’ll notice three -differences:
-animint2
also allows us to link multiple plots together
-into one animint. When two plots are linked, a change in one plot can
-cause changes in another.
Let’s return to two interactive data visualizations we’ve already -looked at: associations between coolness and cuteness, and cuteness -ratings over time.
-Here’s the first data visualization again, lightly altered:
-
-associations_again <-
- ggplot() +
- geom_point(
- data = meowtrics,
- showSelected = "Day",
- clickSelects = "Kind",
- aes(x = Coolness, y = Cuteness,
- color = Cat, group = Cat,
- key = Cat))
I want to link it to my plot about cuteness ratings over time. That -way, I can see how coolness ratings change over time, too. The linking -process is a little more involved than usual:
-
-md <- data.frame(Day = unique(meowtrics$Day)) #1
-
-linked <- animint(associations_again, #2
- duration = list(Day = 1000)) #3
-
-linked$overtime <- #4
- ggplot() +
- geom_tallrect( #5
- data = md, #6
- aes(xmin = Day-0.5, xmax = Day+0.5), #7
- clickSelects = "Day", #8
- alpha = 0.5 #9
- ) + #10
- geom_point(
- data = meowtrics, #11
- clickSelects = "Cat",
- aes(x = Day, y = Cuteness,
- group = Cat, color = Cat))
-linked #12
-
-meowtrics
(meowtrics$Day
), stripping redundant
-days from it viaunique()
, renaming it, and then making it a
-data.frame()
. Now I have a dataframe of all 30 days in
-meowtrics
. This is for geom_tallrect()
, which
-I’ll use later.
-associations_2
and make it
-an animint.
-duration
controls how long it
-takes data points to move from one part of the animint to another. As
-mentioned, it’s optional.
-overtime
.
-geom_tallrect()
-function. It creates a vertical bar that allows you to manipulate time
-variables by clicking on the plot.
-geom_tallrect()
requires a new
-dataset that contains only the time variable. It’s using the dataset
-that I constructed earlier.
-xmin
and xmax
-control how wide the tallrect is, which affects the appearance of the
-selected time variable. In this case, it controls how much a day takes
-up on the tallrect.
-clickSelects
is necessary here,
-since we need to be able to select the day from the plot.
-alpha
controls the transparency
-of the tallrect. Lower numbers increase transparency.
-+
, I attach the tallrect to
-the plot about cuteness ratings over time.
-meowtrics
as
-our dataset.
-Try it out. When you adjust the day on the bottom plot, the top plot -also readjusts. When you click on the legend on the top plot, the bottom -plot is also affected. These linked plots can get much complex. For -examples, see the animint -gallery.
-And that’s it. You’re now a reasonably competent
-animint2
user. If you would like to learn more, please read
-the animint2
-Manual—especially chapters 1 to 4, which go over the same material
-in greater depth.
Feel free to post any questions to our GitHub issues. -Thanks for reading!
-ggplot()
.
-ggplot()
and geom_point()
-functions are held together by the +
symbol. In other
-words: You begin with a blank data visualization and then add a
-scatterplot atop it. All functions in animint2
are held
-together with +
. You’ll be using it a lot.
-meowtrics
dataset has a Coolness variable
-we haven’t looked at yet.
-duration
argument is optional. If you decide
-not to use duration
or set it to 0 milliseconds, the points
-teleport from one location to another.
-, and |