 Welcome to this week's edition of Code Club. For this week, we're going to transition to a little bit of a different format. Just because my life and my work is not always as predictable as I'd like, I'm going to try to record videos, post material on the website, and then go through the material with you in about 20 minutes, and then encourage you to pause the video, engage with the material some more, as well as work through the exercises, and then come back for me to give you a breakdown on how I would do the exercises. So it's the Code Club, but without people calling in via Zoom. So we'll see how this goes for a few weeks, and then we'll reassess. Again, I'm trying to put out content there for people to strengthen their R skills and their data analysis skills, and trying to find the best format to do all of that. So I hope you're doing well where you are. I've had a great couple of weeks teaching for the University of Michigan, my R class, which I'll also be teaching next week. And so it's a busy time, even though we're kind of hunkered down right now in quarantine. So today's Code Club, we're going to dig into the function theme. So in previous Code Clubs, I've always used the theme underscore classic function at the end of all my ggplot code chunks to give it a special look. I personally like that kind of simplistic look. I'm not a big fan of the background. My understanding is that I forget who it was, but someone said that, you know, if you're thinking about the defaults for a style, that the defaults sometimes are intentionally bad. That they're just not attractive as a way to get you to change those default settings. Okay, so if you're like me, kind of digging into that theme function is a little bit scary whenever I've opened up that help page. There's just tons of different arguments to give. And again, it's just kind of scary. So I have a fun activity for us today to play around with. And so we'll work with that. All right. So I am going to go ahead and using the code from the first Code Club a few weeks back. I'm going to build off of that to have us make some modifications to the appearance of the plot. We're not going to change any of the data. We're not going to change how the data are presented and how they're depicted, so to speak. We're going to change things like the font size, the line length, the colors, aesthetics, right? Kind of the appearance, the theming of how a plot looks. You know, if you looked at a plot made in Microsoft Excel, you could say that plot was made in Microsoft Excel because of the theme that it has, right? If you looked at a figure published in, say, like the journal Nature, you'd say, oh, that's a figure from the journal Nature because it has a certain look, right? And so perhaps you want to develop your own look or look for your research group, or perhaps you're working for a company and your company has a certain aesthetic, a certain branding, a certain style that you want to bring to your figures. Another thing to think about, a pet peeve of mine, which I'm very guilty of, is if I'm giving a research talk, I will often copy and paste a figure that I published in the paper into my slide deck, okay? That's not the best approach. Perhaps we want bigger axis labels. Perhaps we want thicker lines, right? And so these are the types of things that we can modify with the theme function without, again, changing the upstream analysis. So let's dig in and I will go ahead and copy that code over and I'll meet you over in RStudio. So I've gone ahead and copied the code over from the website, from the Code Club page for today, over into my Scripts tab, up here in the top left corner of RStudio. I've made a few subtle changes from what was on the website, mainly so I can have a larger font without worrying about how lines were wrapping across the screen. So if I run all of this, if I highlight it and click run, it will run the code. And one of the things we notice is that it's executed with no error message, but there wasn't a figure that was generated over here on the right. And so that's because I made one subtle change to the RScript. And so that is in this code chunk for building the plot, the ggplot, I've assigned this to the variable named p. This is not a very descriptive name. But it's kind of a shorthand tag for a plot or for a figure. So down at this prompt now, if I type p, it will pop up the figure over on the right side. Something else you'll notice is that in the previous Code Clubs, I've always used Theme Classic. Theme Classic is kind of my go-to figure, a theme for ggplot. But the default theme looks a bit like this. And as I said earlier, I don't really like the look of this. I'm not a big fan of grid lines. I'm not a big fan of the gray background. It just doesn't work for me. You might love it. I'm not judging. It also is the default. So if you showed somebody this figure, they'd say, oh, you made that with ggplot. And I don't want that to be so obvious when I'm doing it. So again, that's what we're doing today. And so the nice thing about having that p variable is that I can add additional ggplot layers to it without having to re-copy all this code over and over again as I manipulate little bits of the theme. So as I said, the default theme is Theme Gray. And so we can see that that plot, that figure is the same. And the nice thing about our studio, one of the nice things is that in this plot window, there's a left and right arrow that allows us to see the previous plot and the current plot. So we can see p and p plus theme gray are the same. Okay. We could also do p plus theme classic. This is my go to, like I said, we could do p plus theme BW for black, white. And this gives us fairly similar to theme gray, but instead it's got a white background with gray grid lines. We could do p plus theme dark. Background. I'm not a big fan. P plus theme light. And this looks vaguely familiar to the theme BW. So there's a variety of these themes that are baked into a ggplot. Another is theme void. And this is a theme where there's nothing, right? There's no theming applied. So if we do theme classic, question mark theme classic to open up the help page, we can see all the variety of different themes that are built into ggplot. Now these are fairly basic. I don't want to say they're basic, but they're, they're baked in, right? And so they're, I think probably what Hadley Wickham came up with as a variety of different themes and different looks that somebody might like. Now, one of the motivations for talking about themes is that you might have a particular theme that you're really interested in. Style wise, because you like the way it looks. Perhaps you work for a company and your company has a certain style, certain fonts they use, certain colors they use, or just general design, design aesthetics. So you could create a theme that goes with that, right? So if I looked at a, a figure that was generated by the New York times or Wall Street Journal or 538.com, those figures all kind of have a general theme about them, right? That are consistent within that publication. Similarly within the scientific world, if I showed you a figure from the journal nature, you'd say, oh, that's a figure from the journal nature, right? Again, that's one of the motivations of themes. So some people have had fun with these theme functions and they've put together a gallery of these themes that, and a, in an R package that you can use to install the themes. So here's a webpage that I've linked in the notes for today's code club that goes to the website. All your figure are belong to us. And it's got a gallery for various themes that are in the GG themes, our package. And as you can see, there's a theme for the Wall Street Journal, Tufti, the kind of a pioneer and really very influential individual in the world of data visualization, a status software package, a variety of different themes. 538 as I talked about, that you can make a plot kind of look like Microsoft Excel generated it, theme from the Economist and so forth. Okay. And if you look around in here, you will find that there's a lot of different packages listed in here that also contain different themes, right? So there's a cow plot package that comes with a variety of different themes. One of the funnier, if you will, packages is XKCD, and it comes with functions and theming to make your plot look like it was from an XKCD comic strip. Anyway, we're going to stick with GG themes as kind of an illustration of what you can do with these other packages that provide themes. So to get stuff from GG themes to work within your instance of R in RStudio, you would need to install dot packages, GG themes. It's got an S at the end. I always forget that. Or you could come up to the packages tab here in RStudio and install it from there. I already have it installed. So all I need to do it would be library, GG themes. And so now what I can do is I can run these themes. So I could say P plus theme Excel. And so now I get a plot that has kind of that boring gray background with the black grid lines that we know so well from plots generated in probably more of like an old school version of Microsoft Excel. These data were generated by 538. So let's see about that. So theme 538 with the parentheses. And this now gives it a look that's very characteristic of 538. Economist. It gives it this kind of light blue background with white grid lines that's characteristic of things published by the magazine, the Economist. So again, these are other packages. GG themes is another package that provides themes that you can use with GG plot to make some attractive and perhaps whimsical figures to kind of mix things up a bit from what you might typically get with the defaults. And the styling makes it look like perhaps you've gone through a lot of extra steps to get a certain type of styling when you and I both know that you grabbed that from the Economist's GG plot theme, all right? So this is great. Again, we're not really getting into the nitty gritty of arguments of kind of how to change the theme. We're taking other people's themes and adding them to our own plot. So before we dig into the theme function, which will allow us to do much more precise modifications of the way our plots look, there's a lot we can do without having to go into the theme function. So if we return to theme classic say, this is the figure that we get. And there's a variety of arguments that if you recall from our help tab that you perhaps noticed. So the base size is what is the base font size that we want to be using? So it's an 11 point font. The base family is the type of font we want to use. The base line size is the thickness of the lines that we're going to draw for say like our axes. And the base rec size, which is the thickness of the lines for any rectangles that are drawn in our figures. So say it's like a bar chart, or if we have a border around our legend. So one of the things about GG plot is that based on these base sizes, everything else gets scaled to that, right? So the number on the X axis is a fraction of the size of the label on the X axis, which is a fraction of the size of say like the base font. So we can change the base size of theme classic. So say base size. So you want it to be a little bit bigger. So base size equals 20. Now we get a larger font, right? And so this might be nice again, for something like making a figure that you're going to present as part of a presentation. We could also do P theme classic base family. And so the default, at least on my kind of vanilla installation of R is sans serif. So all the fonts here are, are sans serif fonts, but we could also say serif. And now we get something that looks kind of like Times New Roman with the serifs on the font. Alternatively, we could do mono, which will give you a mono space where each character of text takes the same width. Okay. And this is kind of like a typewriter or code look to our figure. We can also do base. Line size. So perhaps we want, we want larger font, but we also want thicker lines to go with that. So perhaps we say our baseline size is two. And so now we see that our X and Y axes are a little bit stronger, right? And we can of course then combine these, right? So I could then say base size is 20. My baseline size is two. And so now my numbers and my edges on my plotting panel are, are also larger. Okay. So again, these are some of the settings that we can set for all of these functions to modify the font, the font size, the line thickness. We could also change the rectangle sizes. We don't have any rectangular objects in this pot, but you could do that as well. Okay. So when I do this, I notice little things like the way the lines join down here in the bottom left corner. Looks kind of crummy. Maybe I'd want that to be a little bit more rounded. Perhaps, perhaps I want these numbers to be a little bit smaller than I see for everything else. Perhaps I want the title to be bolded, not a plain font. So that's now where we get into the theme function. Okay. And so when you're learning about a new function, I really advocate that the best thing you can do to get going is to do question mark, name of the function. So we'll look at theme. And again, the, the, this help page is a bit overwhelming. And so if you look at the usage section, there's all this text that's just like a wall of text. And it's kind of, I don't know, it's impenetrable, right? So what I would encourage you to do instead is look at this argument section. And so it's got things laid out line by line of the different types of arguments, and then aside from these first four arguments of line, wrecked text and title. So line being kind of like the parent or the base line. Attributes, the wrecked for the rectangular base attributes and text for the text attributes. And then kind of the base title attributes, everything that follows is alphabetical. And my way of thinking about this is that, that the theme is a hierarchical structure, right? So we have, in this case, an axis. So we have an axis. Every axis has a title. It also has text on the axis. And there are also ticks on the axis. So the text would be like the number. If we go back to our plot would be like this 75. Whereas the title is this contests one. And the tick is that little black piece there. So again, what you can see is that there's some hierarchy here, right? So we talked about the axis title. Well, the title on the Y axis, well, the Y axis that's on the left versus the right, and it inherits, it's kind of like CSS. So cascading style sheets, if you're familiar with web programming. That the axis title or axis title Y kind of over specifies or trumps, so to speak, the axis title. And so we can do that and think about that for all of these different things. And so we can see we can change the axis ticks, the lines, the labels, the titles. We can manipulate various aspects of the legend, the key within the legend, the text, the background, the position, the direction, the justification, the box around the legend, the themes we've been looking at don't have a box around them in the legend. And then the panel. The panel is the actual plotting window. So this, which is kind of surrounded by the X and Y axis is the panel. If we keep scrolling down, we also see the plot. So the plot is the full window. So if I wanted the full background window to be gray, I could change plot background, and then the whole plotting window would be gray. And so then we can change these very attributes of the title or caption or what have you. We can also change the margin around the plot. And the strip is for when you might have faceted plots. And so that's kind of a bird's eye view of the different attributes, the different arguments that we can give to the theme function. So I do not have these things memorized, but this hierarchical structure kind of helps me to remember well, legend is the first word. But then I'm not really sure where I want to go from there, right? So I frequently will call up this help page to help me figure out what attributes I want to modify when I'm making my theme. So something that you might also notice as we've kind of scrolled through this is that there are a variety of different helper functions that are being used with these different arguments to the theme function. So I'm going to kind of comment them here. So one is element blank. And this basically blanks out that attribute. We have element line. And what you'll notice is these are all functions is a function that allows you to modify how lines look. We have element text. Modify text. We have element wrecked for rectangle. We also have, so we can, we can do question mark elements. Blank and it will pull up the help page for all of these various attributes. Something else that we can use is the margin. We can use the margin function. To set the margins around a plot. And we can also use a helper function called rel, which specifies a size relative to the parent object size. So if we said that the title was rel 0.5, let's say 2. So say title, plot.title equals element text size equals rel 2, then that's going to be twice the size of the base size. So if the base size is say 11 points and we say rel 2, then it's 22. If we change the base size to 5, then it automatically gets changed to say 10 because that's 2 times 5. And so again, there's a lot of arguments here again for these helper functions. And again, do not be ashamed to use the help page to figure these out. Some things that are really helpful to know about include things like the fill color, the color of the line or of the text, size, the line type that you're using, the line end. So where we had the x and y axis come together and there was a little gap, well, we could say we wanted to be a round line end or a butt-ended or a square-ended. You can specify a type of arrow and how the arrows look if you're drawing arrows. You can change the font face. There are other R packages that allow you to bring in special R, bring in special font families. We won't talk about those. You can change the justification. So is that horizontal or vertical justified? The angle to pivot your text? Line hides all this stuff, right? You can change all this. And so again, what we can do is we can play around with this with these different settings and with these different arguments to the theme function to get a better understanding of how to manipulate our figures. Okay. So let's think about our P figure. And let's see if we can change some things up to make it look particularly horrible. Andrew Steen, who's a professor, I believe at the University of Tennessee, when he teaches R, I'm pretty sure that he has an exercise where he has his students use the theme function to make the most hideous looking figures possible. He then posts some of them to Twitter and they're always pretty funny. And I think that's a really cool instructional approach. So my hat's off to him. I'm fairly inspired by that. So let's say P theme. So the default theme is black, white. So I'm not going to add that. So I'm going to add theme. And then maybe I'll say. Plot.title. And I want this to be bold. I'll do element underscore text. I'll say size equals rel to make it twice the size. I will then do face equals. Bold. I'll do color equals red. So like a lot of things in R, and especially with things from the tidy verse, I find that it really helps to incrementally build things up. And so you can see our title now is a nice bold, large red font. Okay. And then perhaps we want to change our panel dot background to be element rectangle. And we want our fill to be hot pink. Looks like I forgot a comma. So we need commas after each of these arguments. And so our background now is hot pink. Well, that's awesome. Maybe we want our, let's say, I'll do access label. Access title. And one of the nice things about our studio is that it's very helpful in popping up these arguments that we can use. And again, giving us kind of an example of the usage. So access title, I'm going to say element. Text. Let's say size equals 1.2. So it's 20% larger than the base, or let's make a little bit smaller point eight. And I'm going to do font. Let's make those mono spaced. It's supposed to be family, right? And so now it's minus skill. Can you see it down there? Okay. Let's make that size one. Wow. It's so small. Oh, because it was one point font, right? And I think before I did point eight instead of rel point eight. So we could just say rel 0.8. Great. And hopefully you get the idea here, right? That we, that we could keep on with this. Let's do grid. Or no, panel dot grid. Major equals element line. Let's make the color black. Again, you got to have those commas after each argument. And so again, you can see that we're changing things up a bit here. Something else I wanted to point out was this kind of to emphasize this hierarchical nature. So if I do access dot title dot acts, I can then do element. I'll do element blank. Right. So we don't want to put in the title on the X axis. And so the element blank gets rid of that. But what we see is that even though I've set the title for both X and Y, then X supersedes what I had for the layer up. Okay. So hopefully this gives you a sense of how we can play with the theme function using these different aesthetic, this different attributes within a figure, and how we can use the helper functions like element text, element wrecked, element line, element blank to then set values for these different components of a plot with GG plot. For these activities, what I would encourage you to do is where you're writing your code to take the theme that you want and generate the plot with that theme. So say theme classic. So P plus theme classic. It gives us our plot over here. We can then have P plus theme. And as we go through the activity, you're going to plug in different values for theme, right? So if you run both of these lines, then in our studio over in this pot window, you can use the left, right arrows to toggle back and forth between the different states of our figure. This is kind of like going to the eye doctor where they say, does this look better? Right? And so you toggle back and forth until you don't see a difference. So as I said, I'm going to have you go through that with the assignment. So the first is to try to generate theme classic using the theme function. I want you to also generate the theme dark function using theme settings. And then because this data is coming to us from 538, I want you to use theme 538 and try to recreate that theme. Okay. So that one I'm going to tell you is a little bit harder than all the others, but I know you can do it. I keep picking away at it and hopefully you learn something as you go. I do have the answers in here, but it would really tell you like, don't look at the answers until you absolutely have to. And so take your time. This would be a great time to pause the video, engage these assignments or perhaps go back and play with various arguments to the theme function. And, and once you're set, come back and I'll show you how I went through it. So I hope you found these exercises engaging and fun to help you kind of develop your skills with modifying these themes. The first one I'm going to go through it was to make our theme look like theme classic. And so again, this is what we had popped up here. And so one of the first things I notice is that the background in theme classic is, is white. So I'm going to add. Panel. That background. Equals. Element wrecked. Phil equals white. And I'm also going to add panel. Grid. Equals. Element. Blank. And again, if I, if I run. Those lines. I can then see. Similarity or differences. And so it looks pretty good. Something that I'm noticing first, are these access labels are different. So let's go ahead and change that. So we'll do access. Access. A line. Element line. And we'll say color equals black. So that looks good. Something I noticed if I look down there. That was in the original was that it's got that gap. And so I forget what the, what the argument was for element line. Where do I have that? Here we go. So that was line and. And we'll say round. It's kind of thing that just annoys me. So if I look, if I look closely at that. I see that it's, it's, it's got a nice, nice budding there. And so if I just to test this, if I were to say size equals two, we see that it's got a round curvature down there at the end. And also kind of this nice soft round edge at the end, which it's not going to be a perfect reproduction of theme classic, but I think it looks better. Right. All right. So let's see what, what these all look like. See where wrap. So that looks pretty right. One difference I'm noticing is over here for the legend that the red dot on the key is gray in my version, but it's white in the other. So I'm going to do legend dot key dot. And we'll say element wrecked. Phil equals white, which I think looks pretty good. I'm going to double check that. So this is mine. This is theirs. That looks pretty good. Great. So we did it. So if yours looks like, so if your plot looks like this, you did it right. Okay. So what I'm going to suggest, if there's probably many ways to do this, that would get you the same output. Okay. And what's, what's key always when learning the program is you get the same output. We can go back and figure out, you know, what was the best way to do this? But if you got, if you got this plot to work and it looks like theme classic, good job. Well done. Okay. So the second was regenerating theme classic. I'm theme dark. And so theme dark has this very dark background. And I'm noticing that it's got dark background here and also dark background for the legend key. The ax, the grid lines are also different. They're darker gray and also perhaps a different thickness than what we had with, with, with the default theme. Well, this looks like it's a thicker line on the major where the numbers are and a thinner on the minor. Okay. So let's start with changing the background. So we can do panel dot background, panel element wreck. And what we're going to see is that a lot of these things are the same, right? A lot of the arguments we might give are the same, but it's going to be slightly different values that we're passing into the arguments for these element function. So I'm going to say gray. So they've got gray from I think one to 99 or maybe 95. No, 99. And the lower grays are darker than the larger grays. So we're going to try gray 60. We'll see what that looks like. I'm just to remind ourselves what it looks like. I think that's too light. So I'm going to try 50. I think that looks about right. It's hard to see because we've got the white lines breaking things up. So I'm going to go ahead and add panel dot grid. Element line. Color equals, I'm going to say gray 40. Just for comparison, we'll put up the gray. The theme dark here. So those colors look pretty good. I'm noticing that my lines are a little bit thicker than theirs. So I will do panel. Size equals. Well, I'm not sure. Let's try what role one and see what that gets us. So I think that was the same. So let's do 0.75. So it's still a little bit thicker. So let's do 0.5. I think that looks right. That looks good. So one thing I'm noticing as I toggle back and forth is that my access ticks. Are the same thickness. So I want to do access. Tick ticks. Element. Line. The size equals Ralph 0.5. And again, if we compare that theme dark, we can toggle back and forth. And that looks the same. I think we got it. So the other difference is over here with the legend background. So we'll then do legend.key. Element, wrecked. Background. Oh, I meant key dot background. I'm going to make it the same gray as our panel background. So gray 50. Legend key background is not a development. Okay. So what do I do? Maybe it's just. Legend key. There we go. So color. This is the old trick. So when you've got a rectangular object, you want to use fill to fill the color. The color is the color of the outline. There we go. So it looks good. But I'm noticing that there's this, the white line. So there's a white border around our keys. So maybe I'll do color equals. Gray 50. And that looks pretty good. So let me, let me run theme dark again. And if I toggle back and forth, I noticed that the, the legend keys are just a little bit smaller in theme dark. And what I think is happening is this color. Isn't cut gray 50. I think it's actually NA. So I think there is no, there is no border. And so to do that, they can do color equals NA. And so again, if we run these lines, this is mine. This is theirs. We got it. We're good. Very good. Okay. So for activity three, we had theme. Five 38. And then we had the color. And then we had the color. And then we had theme. Five 38. And this is what it looks like. Okay. And P is where we're starting. Okay. So what do we notice is different? Well, the font for the title is bold and it's a bit larger. All the fonts seem a little bit larger. Even like the labels on the axis. There's no title for the X axis or the, for the X axis or for the Y axis. I don't know that's like the best date of is, but whatever our goal is into critique, it's to reproduce. It's got a gray background for the whole pot. There is no line for the Y axis. And it's got, instead of having the legend on the right side, they have it across the bottom. Okay. So there's a few things we're going to change up here. All right. So we'll do a theme like we've been doing. And so the first thing I want to change is let's do theme. Let's do a theme. Let's do a theme. Let's do a theme. Let's do a theme. Plot dot background. And equals element wrecked because it's a rectangular object that we're changing element that we're changing. And then we'll do fill equals gray. Let's say 80. Let's say 90. And how's that compared to that? Okay. So we'll also notice that we want our panel. Background to be the same. And so what I'll do is I'll do plot. Sorry. Panel background. I'm going to set elements. Blank. And so we get. The same background color. As we had with theme 538. Okay. So that color looks pretty dead on. Okay. So we can also get rid of the access titles. So we can say access dot title. Equals elements blank. And we compare that. So that's gone again. We want our grid lines to be this darker color. So we'll do. Panel dot grid. Is element line. Let's do color equals. 80. Let's give that a shot with all this. So I think the gray is pretty right. Something I'm noticing is that it has tick marks. And so we can get rid of those tick marks easily enough. As we saw earlier, I think. So access. Tick. Ticks. Equals elements blank. Looking at that. So it looks good. So something I'm noticing is that. We have the major grid lines, but we also have these minor grid lines. The minor grid lines are the grid lines between. And so what we can do then is access. I'm sorry. Panel grid. That minor. Equals elements. Blank. So that looks pretty good. So we'll go ahead and then think about how do we put our legend on the bottom? And I'm not really remembering how to do that. So I'm going to go ahead and do theme. Look at the help page of the theme. Function. And if I scroll down, I think there was a section for legend. So here we are a legend. And I see legend position. So the position of the legends, none left, right, bottom, top, or two element numeric vector. So we want it on the bottom. So let's, let's try it. See what that looks like. So I'll do legend. Equals. I'm sorry. Legend. Position. Equals. Bottom and quotes. That's right. Excellent. So again, we've got a white background on ours. So let's go ahead and add. Legend. Background. Ground. Element. Blank. What did I do wrong? Legend. Background. Most of how to typo. And if we compare that to theme 538. That's right. Excellent. So again, we've got a white background on ours. So let's go ahead and add. Legend. Background. Background. And if we compare that to theme 538. Oh, we're getting there. So our keys have a white border on them. Which I think we saw from before when we were modifying to make that theme dark. So we can do legend.key. Element. Blank. Great. And that went away. Excellent. So what do we have left? What do we notice is different? Well, the font size is different. And I think there's a margin. So let's go ahead and take on the font size first. So I'm going to go ahead and the help page showed us that there's a text option that allows us to scale all the text elements. So maybe I'll try that. So we'll do text equals element text size equals 12. So sometimes I don't know what the right value is, but we play around. Maybe I'll do 15. And again, if we compare that to our 538. That seems a bit bigger. Yeah. Let's try 12. So it looks like my numbers on the y axis are right. But it's kind of hard because we don't quite have the same positioning of everything. So maybe I'll make the plot.title. And we'll do element text face equals bold. That looks pretty good. It seems like the title maybe needs to be a bit bigger. So let's do size equals 20. I think that looks pretty good. And then we need to add a margin because it seems like there's a layer all the way around that we don't have in our version. So we can do margin or I think it's plot.margin. It takes the margin function then. And it's the top, right, bottom, left, and then a unit. So the mnemonic that people remember is trouble, trbl, trouble. And the unit pt for points. You can also use lines. So I'm going to use lines. To add a one line margin. All the way around my window. Let's see. I think we've got it. So I think our font is a little too big. Let's try 18. I'm going to call that good. I think we've got it. I think we've got it pretty close. There's a little bit of movement I see in the font. But I think, I think we're good. I think we've got it good enough for our purposes. So again, I hope this activity, the set of activities helped you to understand how to better manipulate the way a plot looks. I think it's useful to take a plot like some, say something from 538 and try to make yours look like it. And as a way to kind of hone and develop your skills for working on your game function. And again, as you develop this for your own personal brand or for your research group, you might think about a theme that works for you and that reflects your sense of style and your sensibilities. Okay. Until next time, keep coding and be sure if you, if you enjoyed this code club, please like and subscribe the video and join us next week. As I'll post another session for code club. Take care, be healthy and be safe.