plot(cars)


data(package = .packages(all.available = TRUE))

#install.packages("tidyverse")

library(tidyverse) # Load the tidyverse package for data manipulation and visualization
library(ggplot2) # Load ggplot2 for creating plots

# Load the mtcars dataset (built into R)
data_mtcars <- mtcars

# View the first few rows to understand the data
head(data_mtcars)

#This dataset contain different vehicle model sorted by cylinder size,displacemnt, house power # Sort by Automatic trasnmission

# Convert 'am' (transmission type) and 'cyl' (number of cylinders) to factors for categorical plotting
data_mtcars$am <- as.factor(data_mtcars$am)
data_mtcars$cyl <- as.factor(data_mtcars$cyl)

# Create 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() + # Add points to the plot
  labs(title = "Weight vs. Miles Per Gallon", x = "Weight (1000 lbs)", y = "Miles Per Gallon") # Add plot labels

#Base of this plot 4 cylinders vehicle #Have higher miles per gall vs 8 cynlinders #6 cylinders are all average to 20 miles per gallon #8 cylinder weight more than 6 and 4 cylindres


#Create a line graph of ordered mpg by the row number.
data_mtcars_line <- data_mtcars %>% mutate(index = row_number()) #add index column so we can plot it

ggplot(data_mtcars_line, aes(x = index, y = mpg)) +
  geom_line() + # add a line to the plot
  labs(title = "Miles Per Gallon by Index", x = "Index", y = "Miles Per Gallon") # add plot labels

#Create a line graph of ordered hp by the row number.
data_mtcars_line <- data_mtcars %>% mutate(index = row_number()) #add index column so we can plot it

ggplot(data_mtcars_line, aes(x = index, y = hp)) +
  geom_line() + # add a line to the plot
  labs(title = "Horsepower by Index", x = "Index", y = "House Power") # add plot labels

NA
NA
NA

#Another line graph Horse power by index

# 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,color = cyl)) +
  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

#On this chart we could see Higher cylinder cars have more horse power


#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

#Average measurement for disp,hp,mpg and wt increase with higher cylinder

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCgpgYGB7cn0KcGxvdChjYXJzKQpgYGAKCgoKYGBge3J9CgpkYXRhKHBhY2thZ2UgPSAucGFja2FnZXMoYWxsLmF2YWlsYWJsZSA9IFRSVUUpKQpgYGAKCmBgYHtyfQoKI2luc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpCgpgYGAKCmBgYHtyfQoKbGlicmFyeSh0aWR5dmVyc2UpICMgTG9hZCB0aGUgdGlkeXZlcnNlIHBhY2thZ2UgZm9yIGRhdGEgbWFuaXB1bGF0aW9uIGFuZCB2aXN1YWxpemF0aW9uCmxpYnJhcnkoZ2dwbG90MikgIyBMb2FkIGdncGxvdDIgZm9yIGNyZWF0aW5nIHBsb3RzCgojIExvYWQgdGhlIG10Y2FycyBkYXRhc2V0IChidWlsdCBpbnRvIFIpCmRhdGFfbXRjYXJzIDwtIG10Y2FycwoKIyBWaWV3IHRoZSBmaXJzdCBmZXcgcm93cyB0byB1bmRlcnN0YW5kIHRoZSBkYXRhCmhlYWQoZGF0YV9tdGNhcnMpCmBgYAojVGhpcyBkYXRhc2V0IGNvbnRhaW4gZGlmZmVyZW50IHZlaGljbGUgbW9kZWwgc29ydGVkIGJ5IGN5bGluZGVyIHNpemUsZGlzcGxhY2VtbnQsIGhvdXNlIHBvd2VyCiMgU29ydCBieSBBdXRvbWF0aWMgdHJhc25taXNzaW9uCgoKYGBge3J9CiMgQ29udmVydCAnYW0nICh0cmFuc21pc3Npb24gdHlwZSkgYW5kICdjeWwnIChudW1iZXIgb2YgY3lsaW5kZXJzKSB0byBmYWN0b3JzIGZvciBjYXRlZ29yaWNhbCBwbG90dGluZwpkYXRhX210Y2FycyRhbSA8LSBhcy5mYWN0b3IoZGF0YV9tdGNhcnMkYW0pCmRhdGFfbXRjYXJzJGN5bCA8LSBhcy5mYWN0b3IoZGF0YV9tdGNhcnMkY3lsKQoKCmBgYAogCgpgYGB7cn0KCiMgQ3JlYXRlIGEgc2NhdHRlciBwbG90IG9mIGNhciB3ZWlnaHQgdnMuIG1pbGVzIHBlciBnYWxsb24sIGNvbG9yZWQgYnkgY3lsaW5kZXIgY291bnQKZ2dwbG90KGRhdGFfbXRjYXJzLCBhZXMoeCA9IHd0LCB5ID0gbXBnLCBjb2xvciA9IGN5bCkpICsKICBnZW9tX3BvaW50KCkgKyAjIEFkZCBwb2ludHMgdG8gdGhlIHBsb3QKICBsYWJzKHRpdGxlID0gIldlaWdodCB2cy4gTWlsZXMgUGVyIEdhbGxvbiIsIHggPSAiV2VpZ2h0ICgxMDAwIGxicykiLCB5ID0gIk1pbGVzIFBlciBHYWxsb24iKSAjIEFkZCBwbG90IGxhYmVscwoKYGBgCiNCYXNlIG9mIHRoaXMgcGxvdCA0IGN5bGluZGVycyB2ZWhpY2xlCiNIYXZlIGhpZ2hlciBtaWxlcyBwZXIgZ2FsbCB2cyA4IGN5bmxpbmRlcnMKIzYgY3lsaW5kZXJzIGFyZSBhbGwgYXZlcmFnZSB0byAyMCBtaWxlcyBwZXIgZ2FsbG9uCiM4IGN5bGluZGVyIHdlaWdodCBtb3JlIHRoYW4gNiBhbmQgNCBjeWxpbmRyZXMKCmBgYHtyfQoKI0NyZWF0ZSBhIGxpbmUgZ3JhcGggb2Ygb3JkZXJlZCBtcGcgYnkgdGhlIHJvdyBudW1iZXIuCmRhdGFfbXRjYXJzX2xpbmUgPC0gZGF0YV9tdGNhcnMgJT4lIG11dGF0ZShpbmRleCA9IHJvd19udW1iZXIoKSkgI2FkZCBpbmRleCBjb2x1bW4gc28gd2UgY2FuIHBsb3QgaXQKCmdncGxvdChkYXRhX210Y2Fyc19saW5lLCBhZXMoeCA9IGluZGV4LCB5ID0gbXBnKSkgKwogIGdlb21fbGluZSgpICsgIyBhZGQgYSBsaW5lIHRvIHRoZSBwbG90CiAgbGFicyh0aXRsZSA9ICJNaWxlcyBQZXIgR2FsbG9uIGJ5IEluZGV4IiwgeCA9ICJJbmRleCIsIHkgPSAiTWlsZXMgUGVyIEdhbGxvbiIpICMgYWRkIHBsb3QgbGFiZWxzCgpgYGAKCgpgYGB7cn0KI0NyZWF0ZSBhIGxpbmUgZ3JhcGggb2Ygb3JkZXJlZCBocCBieSB0aGUgcm93IG51bWJlci4KZGF0YV9tdGNhcnNfbGluZSA8LSBkYXRhX210Y2FycyAlPiUgbXV0YXRlKGluZGV4ID0gcm93X251bWJlcigpKSAjYWRkIGluZGV4IGNvbHVtbiBzbyB3ZSBjYW4gcGxvdCBpdAoKZ2dwbG90KGRhdGFfbXRjYXJzX2xpbmUsIGFlcyh4ID0gaW5kZXgsIHkgPSBocCkpICsKICBnZW9tX2xpbmUoKSArICMgYWRkIGEgbGluZSB0byB0aGUgcGxvdAogIGxhYnModGl0bGUgPSAiSG9yc2Vwb3dlciBieSBJbmRleCIsIHggPSAiSW5kZXgiLCB5ID0gIkhvdXNlIFBvd2VyIikgIyBhZGQgcGxvdCBsYWJlbHMKCgoKYGBgCiNBbm90aGVyIGxpbmUgZ3JhcGggSG9yc2UgcG93ZXIgYnkgaW5kZXgKCgpgYGB7cn0KIyBDcmVhdGUgYSBob3Jpem9udGFsIGJhciBjaGFydCBvZiB0aGUgYXZlcmFnZSBob3JzZXBvd2VyIGdyb3VwZWQgYnkgY3lsaW5kZXIgY291bnQKaHBfYnlfY3lsIDwtIGRhdGFfbXRjYXJzICU+JSBncm91cF9ieShjeWwpICU+JSBzdW1tYXJpemUoYXZnX2hwID0gbWVhbihocCkpICMgQ2FsY3VsYXRlIGF2ZXJhZ2UgaG9yc2Vwb3dlciBmb3IgZWFjaCBjeWxpbmRlciBncm91cAoKZ2dwbG90KGhwX2J5X2N5bCwgYWVzKHkgPSBjeWwsIHggPSBhdmdfaHAsY29sb3IgPSBjeWwpKSArCiAgZ2VvbV9iYXIoc3RhdCA9ICdpZGVudGl0eScpICsgIyBDcmVhdGUgYmFycyBiYXNlZCBvbiB0aGUgY2FsY3VsYXRlZCBhdmVyYWdlcwogIGxhYnModGl0bGUgPSAiQXZlcmFnZSBIUCBieSBDeWxpbmRlciBDb3VudCIsIHkgPSAiQ3lsaW5kZXIgQ291bnQiLCB4ID0gIkF2ZXJhZ2UgSG9yc2Vwb3dlciIpCiAgCgojIEFkZCBwbG90IGxhYmVscwoKCmBgYAoKI09uIHRoaXMgY2hhcnQgd2UgY291bGQgc2VlIEhpZ2hlciBjeWxpbmRlciBjYXJzIGhhdmUgbW9yZSBob3JzZSBwb3dlcgoKCmBgYHtyfQoKI0NyZWF0ZSBhIHN0YWNrZWQgYmFyIGNoYXJ0IG9mIGF2ZXJhZ2UgbXBnLCBkaXNwLCBocCwgYW5kIHd0LCBncm91cGVkIGJ5IGN5bC4KYmFyX2RhdGFfbXRjYXJzIDwtIGRhdGFfbXRjYXJzICU+JSBncm91cF9ieShjeWwpICU+JSBzdW1tYXJpemUobXBnID0gbWVhbihtcGcpLCBkaXNwID0gbWVhbihkaXNwKSwgaHAgPSBtZWFuKGhwKSwgd3QgPSBtZWFuKHd0KSkgJT4lIHBpdm90X2xvbmdlcihjb2xzID0gYygibXBnIiwgImRpc3AiLCAiaHAiLCAid3QiKSwgbmFtZXNfdG8gPSAiTWVhc3VyZW1lbnQiLCB2YWx1ZXNfdG8gPSAiQXZlcmFnZSIpICNDYWxjdWxhdGUgYXZlcmFnZSB2YWx1ZXMgZm9yIGVhY2ggbWVhc3VyZW1lbnQsIGFuZCBwaXZvdCB0aGUgZGF0YSBpbnRvIGEgbG9uZyBmb3JtYXQuCgpnZ3Bsb3QoYmFyX2RhdGFfbXRjYXJzLCBhZXMoeCA9IGN5bCwgZmlsbCA9IE1lYXN1cmVtZW50LCB5ID0gQXZlcmFnZSkpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKyAjQ3JlYXRlIGJhcnMgYmFzZWQgb24gdGhlIGNhbGN1bGF0ZWQgYXZlcmFnZXMKICBsYWJzKHRpdGxlID0gIkF2ZXJhZ2UgTWVhc3VyZW1lbnRzIGJ5IEN5bGluZGVyIENvdW50IiwgeCA9ICJDeWxpbmRlciBDb3VudCIsIHkgPSAiQXZlcmFnZSBNZWFzdXJlbWVudCIpICNhZGQgcGxvdCBsYWJlbHMKYGBgCiNBdmVyYWdlIG1lYXN1cmVtZW50IGZvciBkaXNwLGhwLG1wZyBhbmQgd3QgaW5jcmVhc2Ugd2l0aCBoaWdoZXIgY3lsaW5kZXIKCgo=