3.2.4 Exercises:
library(ggplot2)
df <- mpg
1. Run ggplot(data = mpg). What do you see?
empty plot
ggplot(mpg)
2. How many rows are in mpg? How many columns?
234 row and 11 column
df
3.3.1 Exercises:
4. What happens if you map the same variable to multiple aesthetics?
it works, but it gives us a bad visualization ,Because it is redundant information, in most cases avoid mapping a single variable to multiple aesthetics.
ggplot(df)+
geom_point(mapping = aes(x = hwy,y = displ, color = hwy, size = hwy))
*6. what happens if you map an aesthetic to something other than a variable name, like aes(colour = displ < 5)? Note, you’ll also need to specify x and y.**
ggplot() function is behave as if a temporary variable was added to the data with values equal to the result of the expression But In case year>200 the result is a logical variable
ggplot(mpg, aes(x = displ, y = hwy, colour = year>2000)) +
geom_point()
3.5.1 Exercises:
3. What plots does the following code make? What does . do?
will facet by values of drv on the y-axis.
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ .)
will facet cyl based on displ and hwy
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(. ~ cyl)
3.6.1 Exercises:
3.Will these two graphs look different? Why/why not?
no, they will give us the same result
ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) +
geom_point() +
geom_smooth()
ggplot() +
geom_point(data = mpg, mapping = aes(x = displ, y = hwy)) +
##3. What does show.legend = FALSE do? What happens if you remove it? It’s will result in the plot having a legend displaying the mapping between colors and drv #Why do you think I used it earlier in the chapter? Because In that example, the legend isn’t necessary since looking up the values associated with each color isn’t necessary to make that point.
ggplot(data = mpg) +
geom_smooth(
mapping = aes(x = displ, y = hwy, colour = drv),
show.legend = FALSE
)
**3.7.1 Exercises:
5.In our proportion bar chart, we need to set group = 1. Why? In other words what is the problem with these two graphs?
the problem with these two plots is that all bars have the same height, group = 1 will make the plot after calculating proportion with respect to the whole data set.
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = after_stat(prop)))
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = color, y = after_stat(prop)))
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))
LS0tDQp0aXRsZTogIkNoYXB0ZXIgMyAiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIyAqKjMuMi40IEV4ZXJjaXNlczogKioNCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQoNCmRmIDwtIG1wZw0KYGBgDQoNCg0KIyMjIyAgKioxLiBSdW4gZ2dwbG90KGRhdGEgPSBtcGcpLiBXaGF0IGRvIHlvdSBzZWU/KioNCg0KZW1wdHkgcGxvdA0KDQpgYGB7cn0NCmdncGxvdChtcGcpDQoNCg0KYGBgDQoNCiMjIyMgKioyLiBIb3cgbWFueSByb3dzIGFyZSBpbiBtcGc/IEhvdyBtYW55IGNvbHVtbnM/KioNCg0KMjM0IHJvdyBhbmQgMTEgY29sdW1uDQpgYGB7cn0NCmRmDQoNCmBgYA0KDQoNCg0KIyMgKiozLjMuMSBFeGVyY2lzZXM6ICoqDQoNCg0KIyMjIyAqKjQuIFdoYXQgaGFwcGVucyBpZiB5b3UgbWFwIHRoZSBzYW1lIHZhcmlhYmxlIHRvIG11bHRpcGxlIGFlc3RoZXRpY3M/KioNCg0KaXQgd29ya3MsIGJ1dCBpdCBnaXZlcyB1cyBhIGJhZCB2aXN1YWxpemF0aW9uICxCZWNhdXNlIGl0IGlzIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgaW4gbW9zdCBjYXNlcyBhdm9pZCBtYXBwaW5nIGEgc2luZ2xlIHZhcmlhYmxlIHRvIG11bHRpcGxlIGFlc3RoZXRpY3MuDQoNCmBgYHtyfQ0KDQpnZ3Bsb3QoZGYpKw0KICBnZW9tX3BvaW50KG1hcHBpbmcgPSBhZXMoeCA9IGh3eSx5ID0gZGlzcGwsIGNvbG9yID0gaHd5LCBzaXplID0gaHd5KSkNCg0KDQpgYGANCg0KIyMjIyAqNi4gd2hhdCBoYXBwZW5zIGlmIHlvdSBtYXAgYW4gYWVzdGhldGljIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGEgdmFyaWFibGUgbmFtZSwgbGlrZSBhZXMoY29sb3VyID0gZGlzcGwgPCA1KT8gTm90ZSwgeW914oCZbGwgYWxzbyBuZWVkIHRvIHNwZWNpZnkgeCBhbmQgeS4qKg0KDQpnZ3Bsb3QoKSBmdW5jdGlvbiBpcyBiZWhhdmUgYXMgaWYgYSB0ZW1wb3JhcnkgdmFyaWFibGUgd2FzIGFkZGVkIHRvIHRoZSBkYXRhIHdpdGggdmFsdWVzIGVxdWFsIHRvIHRoZSByZXN1bHQgb2YgdGhlIGV4cHJlc3Npb24gQnV0IEluIGNhc2UgeWVhcj4yMDAgdGhlIHJlc3VsdCBpcyBhIGxvZ2ljYWwgdmFyaWFibGUgDQpgYGB7cn0NCmdncGxvdChtcGcsIGFlcyh4ID0gZGlzcGwsIHkgPSBod3ksIGNvbG91ciA9IHllYXI+MjAwMCkpICsNCiAgZ2VvbV9wb2ludCgpDQoNCg0KYGBgDQoNCg0KDQojIyAqKjMuNS4xIEV4ZXJjaXNlczogKioNCg0KDQojIyMjICoqMy4gV2hhdCBwbG90cyBkb2VzIHRoZSBmb2xsb3dpbmcgY29kZSBtYWtlPyBXaGF0IGRvZXMgLiBkbz8qKg0KDQoNCg0Kd2lsbCBmYWNldCBieSB2YWx1ZXMgb2YgZHJ2IG9uIHRoZSB5LWF4aXMuDQoNCmBgYHtyfQ0KZ2dwbG90KGRhdGEgPSBtcGcpICsgDQogIGdlb21fcG9pbnQobWFwcGluZyA9IGFlcyh4ID0gZGlzcGwsIHkgPSBod3kpKSArDQogIGZhY2V0X2dyaWQoZHJ2IH4gLikNCg0KDQpgYGANCg0KDQoNCndpbGwgZmFjZXQgY3lsIGJhc2VkIG9uIGRpc3BsIGFuZCBod3kNCg0KDQpgYGB7cn0NCmdncGxvdChkYXRhID0gbXBnKSArIA0KICBnZW9tX3BvaW50KG1hcHBpbmcgPSBhZXMoeCA9IGRpc3BsLCB5ID0gaHd5KSkgKw0KICBmYWNldF9ncmlkKC4gfiBjeWwpDQpgYGANCg0KDQoNCiMjICoqMy42LjEgRXhlcmNpc2VzOioqDQoNCg0KIyMjIyAqKjMuV2lsbCB0aGVzZSB0d28gZ3JhcGhzIGxvb2sgZGlmZmVyZW50PyBXaHkvd2h5IG5vdD8qKg0KDQpubywgdGhleSB3aWxsIGdpdmUgdXMgdGhlIHNhbWUgcmVzdWx0DQoNCmBgYHtyfQ0KZ2dwbG90KGRhdGEgPSBtcGcsIG1hcHBpbmcgPSBhZXMoeCA9IGRpc3BsLCB5ID0gaHd5KSkgKyANCiAgZ2VvbV9wb2ludCgpICsgDQogIGdlb21fc21vb3RoKCkNCg0KYGBgDQoNCmBgYHtyfQ0KZ2dwbG90KCkgKyANCiAgZ2VvbV9wb2ludChkYXRhID0gbXBnLCBtYXBwaW5nID0gYWVzKHggPSBkaXNwbCwgeSA9IGh3eSkpICsNCmBgYA0KDQojIzMuIFdoYXQgZG9lcyBzaG93LmxlZ2VuZCA9IEZBTFNFIGRvPyBXaGF0IGhhcHBlbnMgaWYgeW91IHJlbW92ZSBpdD8NCkl0J3Mgd2lsbCByZXN1bHQgaW4gdGhlIHBsb3QgaGF2aW5nIGEgbGVnZW5kIGRpc3BsYXlpbmcgdGhlIG1hcHBpbmcgYmV0d2VlbiBjb2xvcnMgYW5kIGRydg0KI1doeSBkbyB5b3UgdGhpbmsgSSB1c2VkIGl0IGVhcmxpZXIgaW4gdGhlIGNoYXB0ZXI/DQpCZWNhdXNlIEluIHRoYXQgZXhhbXBsZSwgdGhlIGxlZ2VuZCBpc27igJl0IG5lY2Vzc2FyeSBzaW5jZSBsb29raW5nIHVwIHRoZSB2YWx1ZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggY29sb3IgaXNu4oCZdCBuZWNlc3NhcnkgdG8gbWFrZSB0aGF0IHBvaW50Lg0KYGBge3J9DQpnZ3Bsb3QoZGF0YSA9IG1wZykgKw0KICBnZW9tX3Ntb290aCgNCiAgICBtYXBwaW5nID0gYWVzKHggPSBkaXNwbCwgeSA9IGh3eSwgY29sb3VyID0gZHJ2KSwNCiAgICBzaG93LmxlZ2VuZCA9IEZBTFNFDQogICkNCg0KYGBgDQoNCg0KIyMgKiozLjcuMSBFeGVyY2lzZXM6IA0KDQoNCg0KIyMjIyAqKjUuSW4gb3VyIHByb3BvcnRpb24gYmFyIGNoYXJ0LCB3ZSBuZWVkIHRvIHNldCBncm91cCA9IDEuIFdoeT8gSW4gb3RoZXIgd29yZHMgd2hhdCBpcyB0aGUgcHJvYmxlbSB3aXRoIHRoZXNlIHR3byBncmFwaHM/KioNCg0KdGhlIHByb2JsZW0gd2l0aCB0aGVzZSB0d28gcGxvdHMgaXMgdGhhdCBhbGwgYmFycyBoYXZlIHRoZSBzYW1lIGhlaWdodCwgZ3JvdXAgPSAxIHdpbGwgbWFrZSB0aGUgcGxvdCBhZnRlciBjYWxjdWxhdGluZyBwcm9wb3J0aW9uIHdpdGggcmVzcGVjdCB0byB0aGUgd2hvbGUgZGF0YSBzZXQuDQoNCmBgYHtyfQ0KZ2dwbG90KGRhdGEgPSBkaWFtb25kcykgKyANCiAgZ2VvbV9iYXIobWFwcGluZyA9IGFlcyh4ID0gY3V0LCB5ID0gYWZ0ZXJfc3RhdChwcm9wKSkpDQoNCmBgYA0KDQpgYGB7cn0NCg0KZ2dwbG90KGRhdGEgPSBkaWFtb25kcykgKyANCiAgZ2VvbV9iYXIobWFwcGluZyA9IGFlcyh4ID0gY3V0LCBmaWxsID0gY29sb3IsIHkgPSBhZnRlcl9zdGF0KHByb3ApKSkNCmBgYA0KYGBge3J9DQpnZ3Bsb3QoZGF0YSA9IGRpYW1vbmRzKSArDQogIGdlb21fYmFyKG1hcHBpbmcgPSBhZXMoeCA9IGN1dCwgeSA9IC4ucHJvcC4uLCBncm91cCA9IDEpKQ0KDQpgYGANCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo=