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=