plot(cars)

ˆ
install.packages("tidyverse", dependencies = TRUE)
library(tidyverse)
library(ggplot2) #loading ggplot2 for creating plots
data_mtcars <- mtcars #loading the mtcards dataset (built into R)
head(data_mtcars) #view the first rows to undertand the data
#Converting 'am' (transmission type) and 'cyl' (number of cylinders) to factors for categorial plotting
data_mtcars$am <- as.factor(data_mtcars$am)
data_mtcars$cyl <- as.factor(data_mtcars$cyl)
#Creating a scatter plot of car weight vs. miles per gallon, colored by cylinder count
ggplot(data_mtcars, aes(x = wt, y = mpg, color = cyl)) +
geom_point() + # command adds points to the plot
labs(
title = "Weights vs Miles Per Gallon",
x = "Weight (1000 lbs)",
y = "Miles Per Gallon"
)

#Creating a line graph of ordered mpg by the row number
data_mtcars_line <- data_mtcars %>% mutate(index = row_number()) #adding index column so we can plot it
ggplot(data_mtcars_line, aes(x = index, y = mpg)) +
geom_line() + #adding a line to the plot
labs(title = "Miles Per Gallon by Index", x = "Index", y = "Miles Per Gallon") #adding plot labels

# Create a horizontal bar chart of the average horsepower grouped by cylinder count
hp_by_cyl <- data_mtcars %>% group_by(cyl) %>% summarize(avg_hp = mean(hp)) # Calculate average horsepower for each cylinder group
ggplot(hp_by_cyl, aes(y = cyl, x = avg_hp)) +
geom_bar(stat = 'identity') + # Create bars based on the calculated averages
labs(title = "Average HP by Cylinder Count", y = "Cylinder Count", x = "Average Horsepower") # Add plot labels

#Create a stacked bar chart of average mpg, disp, hp, and wt, grouped by cyl.
bar_data_mtcars <- data_mtcars %>% group_by(cyl) %>% summarize(mpg = mean(mpg), disp = mean(disp), hp = mean(hp), wt = mean(wt)) %>% pivot_longer(cols = c("mpg", "disp", "hp", "wt"), names_to = "Measurement", values_to = "Average") #Calculate average values for each measurement, and pivot the data into a long format.
ggplot(bar_data_mtcars, aes(x = cyl, fill = Measurement, y = Average)) +
geom_bar(stat = "identity") + #Create bars based on the calculated averages
labs(title = "Average Measurements by Cylinder Count", x = "Cylinder Count", y = "Average Measurement") #add plot labels

LS0tCnRpdGxlOiAiQWN0aXZpdHkgIzMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCmBgYHtyfQpwbG90KGNhcnMpCmBgYAoKCgoKCsuGCmBgYHtyfQppbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiLCBkZXBlbmRlbmNpZXMgPSBUUlVFKQpgYGAKCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkgI2xvYWRpbmcgdGhlIHRpZHl2ZXJzZSBwYWNrYWdlIGZvciBmYXRhIG1hbmlwdWxhdGlvbiBhbmQgdmlzdWFsaXphdGlvbiAKYGBgCgpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKSAjbG9hZGluZyBnZ3Bsb3QyIGZvciBjcmVhdGluZyBwbG90cyAKYGBgCgpgYGB7cn0KZGF0YV9tdGNhcnMgPC0gbXRjYXJzICNsb2FkaW5nIHRoZSBtdGNhcmRzIGRhdGFzZXQgKGJ1aWx0IGludG8gUikKCmhlYWQoZGF0YV9tdGNhcnMpICN2aWV3IHRoZSBmaXJzdCByb3dzIHRvIHVuZGVydGFuZCB0aGUgZGF0YSAKYGBgCgoKYGBge3J9CiNDb252ZXJ0aW5nICdhbScgKHRyYW5zbWlzc2lvbiB0eXBlKSBhbmQgJ2N5bCcgKG51bWJlciBvZiBjeWxpbmRlcnMpIHRvIGZhY3RvcnMgZm9yIGNhdGVnb3JpYWwgcGxvdHRpbmcgCgpkYXRhX210Y2FycyRhbSA8LSBhcy5mYWN0b3IoZGF0YV9tdGNhcnMkYW0pCmRhdGFfbXRjYXJzJGN5bCA8LSBhcy5mYWN0b3IoZGF0YV9tdGNhcnMkY3lsKQpgYGAKCgpgYGB7cn0KI0NyZWF0aW5nIGEgc2NhdHRlciBwbG90IG9mIGNhciB3ZWlnaHQgdnMuIG1pbGVzIHBlciBnYWxsb24sIGNvbG9yZWQgYnkgY3lsaW5kZXIgY291bnQgCmdncGxvdChkYXRhX210Y2FycywgYWVzKHggPSB3dCwgeSA9IG1wZywgY29sb3IgPSBjeWwpKSArCiAgZ2VvbV9wb2ludCgpICsgICMgY29tbWFuZCBhZGRzIHBvaW50cyB0byB0aGUgcGxvdAogIGxhYnMoCiAgICB0aXRsZSA9ICJXZWlnaHRzIHZzIE1pbGVzIFBlciBHYWxsb24iLAogICAgeCA9ICJXZWlnaHQgKDEwMDAgbGJzKSIsCiAgICB5ID0gIk1pbGVzIFBlciBHYWxsb24iCiAgKQpgYGAKCgpgYGB7cn0KI0NyZWF0aW5nIGEgbGluZSBncmFwaCBvZiBvcmRlcmVkIG1wZyBieSB0aGUgcm93IG51bWJlciAKZGF0YV9tdGNhcnNfbGluZSA8LSBkYXRhX210Y2FycyAlPiUgbXV0YXRlKGluZGV4ID0gcm93X251bWJlcigpKSAjYWRkaW5nIGluZGV4IGNvbHVtbiBzbyB3ZSBjYW4gcGxvdCBpdCAKCmdncGxvdChkYXRhX210Y2Fyc19saW5lLCBhZXMoeCA9IGluZGV4LCB5ID0gbXBnKSkgKwogIGdlb21fbGluZSgpICsgI2FkZGluZyBhIGxpbmUgdG8gdGhlIHBsb3QgCiAgbGFicyh0aXRsZSA9ICJNaWxlcyBQZXIgR2FsbG9uIGJ5IEluZGV4IiwgeCA9ICJJbmRleCIsIHkgPSAiTWlsZXMgUGVyIEdhbGxvbiIpICNhZGRpbmcgcGxvdCBsYWJlbHMKYGBgCgoKYGBge3J9CiMgQ3JlYXRlIGEgaG9yaXpvbnRhbCBiYXIgY2hhcnQgb2YgdGhlIGF2ZXJhZ2UgaG9yc2Vwb3dlciBncm91cGVkIGJ5IGN5bGluZGVyIGNvdW50CmhwX2J5X2N5bCA8LSBkYXRhX210Y2FycyAlPiUgZ3JvdXBfYnkoY3lsKSAlPiUgc3VtbWFyaXplKGF2Z19ocCA9IG1lYW4oaHApKSAjIENhbGN1bGF0ZSBhdmVyYWdlIGhvcnNlcG93ZXIgZm9yIGVhY2ggY3lsaW5kZXIgZ3JvdXAKCmdncGxvdChocF9ieV9jeWwsIGFlcyh5ID0gY3lsLCB4ID0gYXZnX2hwKSkgKwogIGdlb21fYmFyKHN0YXQgPSAnaWRlbnRpdHknKSArICMgQ3JlYXRlIGJhcnMgYmFzZWQgb24gdGhlIGNhbGN1bGF0ZWQgYXZlcmFnZXMKICBsYWJzKHRpdGxlID0gIkF2ZXJhZ2UgSFAgYnkgQ3lsaW5kZXIgQ291bnQiLCB5ID0gIkN5bGluZGVyIENvdW50IiwgeCA9ICJBdmVyYWdlIEhvcnNlcG93ZXIiKSAjIEFkZCBwbG90IGxhYmVscwpgYGAKCgpgYGB7cn0KI0NyZWF0ZSBhIHN0YWNrZWQgYmFyIGNoYXJ0IG9mIGF2ZXJhZ2UgbXBnLCBkaXNwLCBocCwgYW5kIHd0LCBncm91cGVkIGJ5IGN5bC4KYmFyX2RhdGFfbXRjYXJzIDwtIGRhdGFfbXRjYXJzICU+JSBncm91cF9ieShjeWwpICU+JSBzdW1tYXJpemUobXBnID0gbWVhbihtcGcpLCBkaXNwID0gbWVhbihkaXNwKSwgaHAgPSBtZWFuKGhwKSwgd3QgPSBtZWFuKHd0KSkgJT4lIHBpdm90X2xvbmdlcihjb2xzID0gYygibXBnIiwgImRpc3AiLCAiaHAiLCAid3QiKSwgbmFtZXNfdG8gPSAiTWVhc3VyZW1lbnQiLCB2YWx1ZXNfdG8gPSAiQXZlcmFnZSIpICNDYWxjdWxhdGUgYXZlcmFnZSB2YWx1ZXMgZm9yIGVhY2ggbWVhc3VyZW1lbnQsIGFuZCBwaXZvdCB0aGUgZGF0YSBpbnRvIGEgbG9uZyBmb3JtYXQuCgpnZ3Bsb3QoYmFyX2RhdGFfbXRjYXJzLCBhZXMoeCA9IGN5bCwgZmlsbCA9IE1lYXN1cmVtZW50LCB5ID0gQXZlcmFnZSkpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKyAjQ3JlYXRlIGJhcnMgYmFzZWQgb24gdGhlIGNhbGN1bGF0ZWQgYXZlcmFnZXMKICBsYWJzKHRpdGxlID0gIkF2ZXJhZ2UgTWVhc3VyZW1lbnRzIGJ5IEN5bGluZGVyIENvdW50IiwgeCA9ICJDeWxpbmRlciBDb3VudCIsIHkgPSAiQXZlcmFnZSBNZWFzdXJlbWVudCIpICNhZGQgcGxvdCBsYWJlbHMKYGBgCgoKCg==