install.packages("ggplot2")
trying URL 'http://rspm/default/__linux__/noble/latest/src/contrib/ggplot2_4.0.2.tar.gz'
Content type 'application/x-gzip' length 8482095 bytes (8.1 MB)
==================================================
downloaded 8.1 MB


The downloaded source packages are in
    ‘/tmp/RtmpVfDS4d/downloaded_packages’
install.packages("dplyr")
trying URL 'http://rspm/default/__linux__/noble/latest/src/contrib/dplyr_1.2.1.tar.gz'
Content type 'application/x-gzip' length 1521233 bytes (1.5 MB)
==================================================
downloaded 1.5 MB


The downloaded source packages are in
    ‘/tmp/RtmpVfDS4d/downloaded_packages’
install.packages("GGally")
trying URL 'http://rspm/default/__linux__/noble/latest/src/contrib/GGally_2.4.0.tar.gz'
Content type 'application/x-gzip' length 2003384 bytes (1.9 MB)
==================================================
downloaded 1.9 MB


The downloaded source packages are in
    ‘/tmp/RtmpVfDS4d/downloaded_packages’
# Infection Data Visualizations in R

# Create the data frame
infections <- c(245, 215, 2076, 5023, 189, 195, 123, 116, 3298, 430, 502, 126, 112, 67, 52, 39, 54, 2356, 6781, 120, 2389, 279, 257, 290, 234, 5689, 261, 672, 205)
ufo2010 <- c(2, 6, 2, 59, 0, 1, 1, 0, 115, 0, 0, 0, 0, 0, 0, 0, 6, 4, 2, 7, 2, 9, 2, 29, 10, 169, 1, 40, 16)
pop <- c(25101, 61912, 33341, 409061, 7481, 18675, 25581, 22286, 459598, 3915, 67197, 34365, 3911, 32122, 31459, 2311, 28350, 101482, 19005, 20679, 36745, 162812, 15927, 251417, 153920, 1554720, 16148, 305455, 37276)
df <- data.frame(infections, ufo2010, pop)

# Load necessary libraries
library(ggplot2)
library(dplyr)

# --- 1. Bar Graph: Comparing Infections and UFO Sightings ---
ggplot(df, aes(x = 1:nrow(df))) +
  geom_bar(aes(y = infections, fill = "Infections"), stat = "identity", position = "dodge") +
  geom_bar(aes(y = ufo2010, fill = "UFO Sightings (2010)"), stat = "identity", position = "dodge", alpha = 0.7) +
  scale_fill_manual("Variables", values = c("Infections" = "skyblue", "UFO Sightings (2010)" = "salmon")) +
  labs(x = "Data Point Index", y = "Count", title = "Comparison of Infections and UFO Sightings") +
  theme_minimal() +
  theme(legend.position = "top")

#There is a moderate positive correlation between infections and UFO sightings (~0.60) #Population has a strong correlation with UFO sightings (~0.94), suggesting population drives sightings #Distributions are highly skewed with several extreme outliers affecting relationships

# --- 2. Line Chart: Trends in Infections and Population ---
ggplot(df, aes(x = 1:nrow(df))) +
  geom_line(aes(y = infections, color = "Infections"), linewidth = 1) +
  geom_line(aes(y = pop, color = "Population"), linewidth = 1, linetype = "dashed") +
  scale_color_manual("Variables", values = c("Infections" = "green", "Population" = "purple")) +
  labs(x = "Data Point Index", y = "Count", title = "Trends in Infections and Population") +
  theme_minimal() +
  theme(legend.position = "top")

#There is a positive relationship where more UFO sightings tend to align with higher infections #Larger population points (bigger bubbles) are associated with higher values in both variables #A few large-population outliers heavily influence the trend

# --- 3. Scatter Plot: Relationship between Population and Infections ---
ggplot(df, aes(x = pop, y = infections)) +
  geom_point(color = "blue", alpha = 0.6) +
  labs(x = "Population", y = "Number of Infections", title = "Relationship between Population and Number of Infections") +
  theme_minimal()

#There is a clear positive correlation between population and UFO sightings #Most observations are clustered at low population and low sightings #A few high-population outliers drive the upward trend

# --- 4. Box Plot: Distribution of Infections ---
ggplot(df, aes(y = infections)) +
  geom_boxplot(fill = "lightcoral") +
  labs(y = "Number of Infections", title = "Distribution of Number of Infections") +
  theme_minimal()

#The distribution is strongly right-skewed with most values near zero #A small number of extreme values create a long tail #UFO sightings are generally rare across the dataset

# --- 5. Histogram: Frequency Distribution of UFO Sightings ---
ggplot(df, aes(x = ufo2010)) +
  geom_histogram(binwidth = 5, fill = "orange", color = "black", alpha = 0.7) +
  labs(x = "Number of UFO Sightings (2010)", y = "Frequency", title = "Frequency Distribution of UFO Sightings (2010)") +
  theme_minimal()

#The data is right-skewed with several high-value outliers #Most infection counts are relatively low compared to a few extreme cases #The variability suggests uneven spread across observations

# --- 6. Scatter Plot: Relationship between Population and UFO Sightings ---
ggplot(df, aes(x = pop, y = ufo2010)) +
  geom_point(color = "purple", alpha = 0.6) +
  labs(x = "Population", y = "Number of UFO Sightings (2010)", title = "Relationship between Population and UFO Sightings (2010)") +
  theme_minimal()

#There is a weak to moderate positive relationship between population and infections #Higher population tends to correspond to higher infections, but inconsistently #Outliers significantly impact the overall pattern

# --- 7. Scatter Plot: Infections vs. UFOs with Population Size ---
ggplot(df, aes(x = ufo2010, y = infections, size = pop)) +
  geom_point(alpha = 0.6, color = "maroon") +
  scale_size_continuous(name = "Population Size") +
  labs(x = "Number of UFO Sightings (2010)", y = "Number of Infections", title = "Infections vs. UFO Sightings, Size by Population") +
  theme_minimal()

#Population fluctuates dramatically compared to infections #Infections remain relatively stable with small variations #There is no clear synchronized trend between the two variables

# --- 8. Pair Plot: Overview of Relationships ---
library(GGally)
ggpairs(df) +
  ggtitle("Pair Plot of Infections, UFO Sightings, and Population") +
  theme_minimal()

#Infections are consistently much higher than UFO sightings #UFO sightings remain low with minimal variation #There is no clear pattern linking both variables across observations

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9Cmluc3RhbGwucGFja2FnZXMoImdncGxvdDIiKQppbnN0YWxsLnBhY2thZ2VzKCJkcGx5ciIpCmluc3RhbGwucGFja2FnZXMoIkdHYWxseSIpCmBgYAoKYGBge3J9CiMgSW5mZWN0aW9uIERhdGEgVmlzdWFsaXphdGlvbnMgaW4gUgoKIyBDcmVhdGUgdGhlIGRhdGEgZnJhbWUKaW5mZWN0aW9ucyA8LSBjKDI0NSwgMjE1LCAyMDc2LCA1MDIzLCAxODksIDE5NSwgMTIzLCAxMTYsIDMyOTgsIDQzMCwgNTAyLCAxMjYsIDExMiwgNjcsIDUyLCAzOSwgNTQsIDIzNTYsIDY3ODEsIDEyMCwgMjM4OSwgMjc5LCAyNTcsIDI5MCwgMjM0LCA1Njg5LCAyNjEsIDY3MiwgMjA1KQp1Zm8yMDEwIDwtIGMoMiwgNiwgMiwgNTksIDAsIDEsIDEsIDAsIDExNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNiwgNCwgMiwgNywgMiwgOSwgMiwgMjksIDEwLCAxNjksIDEsIDQwLCAxNikKcG9wIDwtIGMoMjUxMDEsIDYxOTEyLCAzMzM0MSwgNDA5MDYxLCA3NDgxLCAxODY3NSwgMjU1ODEsIDIyMjg2LCA0NTk1OTgsIDM5MTUsIDY3MTk3LCAzNDM2NSwgMzkxMSwgMzIxMjIsIDMxNDU5LCAyMzExLCAyODM1MCwgMTAxNDgyLCAxOTAwNSwgMjA2NzksIDM2NzQ1LCAxNjI4MTIsIDE1OTI3LCAyNTE0MTcsIDE1MzkyMCwgMTU1NDcyMCwgMTYxNDgsIDMwNTQ1NSwgMzcyNzYpCmBgYAoKCmBgYHtyfQpkZiA8LSBkYXRhLmZyYW1lKGluZmVjdGlvbnMsIHVmbzIwMTAsIHBvcCkKCiMgTG9hZCBuZWNlc3NhcnkgbGlicmFyaWVzCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShkcGx5cikKCiMgLS0tIDEuIEJhciBHcmFwaDogQ29tcGFyaW5nIEluZmVjdGlvbnMgYW5kIFVGTyBTaWdodGluZ3MgLS0tCmdncGxvdChkZiwgYWVzKHggPSAxOm5yb3coZGYpKSkgKwogIGdlb21fYmFyKGFlcyh5ID0gaW5mZWN0aW9ucywgZmlsbCA9ICJJbmZlY3Rpb25zIiksIHN0YXQgPSAiaWRlbnRpdHkiLCBwb3NpdGlvbiA9ICJkb2RnZSIpICsKICBnZW9tX2JhcihhZXMoeSA9IHVmbzIwMTAsIGZpbGwgPSAiVUZPIFNpZ2h0aW5ncyAoMjAxMCkiKSwgc3RhdCA9ICJpZGVudGl0eSIsIHBvc2l0aW9uID0gImRvZGdlIiwgYWxwaGEgPSAwLjcpICsKICBzY2FsZV9maWxsX21hbnVhbCgiVmFyaWFibGVzIiwgdmFsdWVzID0gYygiSW5mZWN0aW9ucyIgPSAic2t5Ymx1ZSIsICJVRk8gU2lnaHRpbmdzICgyMDEwKSIgPSAic2FsbW9uIikpICsKICBsYWJzKHggPSAiRGF0YSBQb2ludCBJbmRleCIsIHkgPSAiQ291bnQiLCB0aXRsZSA9ICJDb21wYXJpc29uIG9mIEluZmVjdGlvbnMgYW5kIFVGTyBTaWdodGluZ3MiKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAidG9wIikKYGBgCiNUaGVyZSBpcyBhIG1vZGVyYXRlIHBvc2l0aXZlIGNvcnJlbGF0aW9uIGJldHdlZW4gaW5mZWN0aW9ucyBhbmQgVUZPIHNpZ2h0aW5ncyAofjAuNjApCiNQb3B1bGF0aW9uIGhhcyBhIHN0cm9uZyBjb3JyZWxhdGlvbiB3aXRoIFVGTyBzaWdodGluZ3MgKH4wLjk0KSwgc3VnZ2VzdGluZyBwb3B1bGF0aW9uIGRyaXZlcyBzaWdodGluZ3MKI0Rpc3RyaWJ1dGlvbnMgYXJlIGhpZ2hseSBza2V3ZWQgd2l0aCBzZXZlcmFsIGV4dHJlbWUgb3V0bGllcnMgYWZmZWN0aW5nIHJlbGF0aW9uc2hpcHMKCmBgYHtyfQojIC0tLSAyLiBMaW5lIENoYXJ0OiBUcmVuZHMgaW4gSW5mZWN0aW9ucyBhbmQgUG9wdWxhdGlvbiAtLS0KZ2dwbG90KGRmLCBhZXMoeCA9IDE6bnJvdyhkZikpKSArCiAgZ2VvbV9saW5lKGFlcyh5ID0gaW5mZWN0aW9ucywgY29sb3IgPSAiSW5mZWN0aW9ucyIpLCBsaW5ld2lkdGggPSAxKSArCiAgZ2VvbV9saW5lKGFlcyh5ID0gcG9wLCBjb2xvciA9ICJQb3B1bGF0aW9uIiksIGxpbmV3aWR0aCA9IDEsIGxpbmV0eXBlID0gImRhc2hlZCIpICsKICBzY2FsZV9jb2xvcl9tYW51YWwoIlZhcmlhYmxlcyIsIHZhbHVlcyA9IGMoIkluZmVjdGlvbnMiID0gImdyZWVuIiwgIlBvcHVsYXRpb24iID0gInB1cnBsZSIpKSArCiAgbGFicyh4ID0gIkRhdGEgUG9pbnQgSW5kZXgiLCB5ID0gIkNvdW50IiwgdGl0bGUgPSAiVHJlbmRzIGluIEluZmVjdGlvbnMgYW5kIFBvcHVsYXRpb24iKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAidG9wIikKYGBgCiNUaGVyZSBpcyBhIHBvc2l0aXZlIHJlbGF0aW9uc2hpcCB3aGVyZSBtb3JlIFVGTyBzaWdodGluZ3MgdGVuZCB0byBhbGlnbiB3aXRoIGhpZ2hlciBpbmZlY3Rpb25zCiNMYXJnZXIgcG9wdWxhdGlvbiBwb2ludHMgKGJpZ2dlciBidWJibGVzKSBhcmUgYXNzb2NpYXRlZCB3aXRoIGhpZ2hlciB2YWx1ZXMgaW4gYm90aCB2YXJpYWJsZXMKI0EgZmV3IGxhcmdlLXBvcHVsYXRpb24gb3V0bGllcnMgaGVhdmlseSBpbmZsdWVuY2UgdGhlIHRyZW5kIAoKYGBge3J9CiMgLS0tIDMuIFNjYXR0ZXIgUGxvdDogUmVsYXRpb25zaGlwIGJldHdlZW4gUG9wdWxhdGlvbiBhbmQgSW5mZWN0aW9ucyAtLS0KZ2dwbG90KGRmLCBhZXMoeCA9IHBvcCwgeSA9IGluZmVjdGlvbnMpKSArCiAgZ2VvbV9wb2ludChjb2xvciA9ICJibHVlIiwgYWxwaGEgPSAwLjYpICsKICBsYWJzKHggPSAiUG9wdWxhdGlvbiIsIHkgPSAiTnVtYmVyIG9mIEluZmVjdGlvbnMiLCB0aXRsZSA9ICJSZWxhdGlvbnNoaXAgYmV0d2VlbiBQb3B1bGF0aW9uIGFuZCBOdW1iZXIgb2YgSW5mZWN0aW9ucyIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCiNUaGVyZSBpcyBhIGNsZWFyIHBvc2l0aXZlIGNvcnJlbGF0aW9uIGJldHdlZW4gcG9wdWxhdGlvbiBhbmQgVUZPIHNpZ2h0aW5ncwojTW9zdCBvYnNlcnZhdGlvbnMgYXJlIGNsdXN0ZXJlZCBhdCBsb3cgcG9wdWxhdGlvbiBhbmQgbG93IHNpZ2h0aW5ncwojQSBmZXcgaGlnaC1wb3B1bGF0aW9uIG91dGxpZXJzIGRyaXZlIHRoZSB1cHdhcmQgdHJlbmQKCgpgYGB7cn0KIyAtLS0gNC4gQm94IFBsb3Q6IERpc3RyaWJ1dGlvbiBvZiBJbmZlY3Rpb25zIC0tLQpnZ3Bsb3QoZGYsIGFlcyh5ID0gaW5mZWN0aW9ucykpICsKICBnZW9tX2JveHBsb3QoZmlsbCA9ICJsaWdodGNvcmFsIikgKwogIGxhYnMoeSA9ICJOdW1iZXIgb2YgSW5mZWN0aW9ucyIsIHRpdGxlID0gIkRpc3RyaWJ1dGlvbiBvZiBOdW1iZXIgb2YgSW5mZWN0aW9ucyIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCiNUaGUgZGlzdHJpYnV0aW9uIGlzIHN0cm9uZ2x5IHJpZ2h0LXNrZXdlZCB3aXRoIG1vc3QgdmFsdWVzIG5lYXIgemVybwojQSBzbWFsbCBudW1iZXIgb2YgZXh0cmVtZSB2YWx1ZXMgY3JlYXRlIGEgbG9uZyB0YWlsCiNVRk8gc2lnaHRpbmdzIGFyZSBnZW5lcmFsbHkgcmFyZSBhY3Jvc3MgdGhlIGRhdGFzZXQKCmBgYHtyfQojIC0tLSA1LiBIaXN0b2dyYW06IEZyZXF1ZW5jeSBEaXN0cmlidXRpb24gb2YgVUZPIFNpZ2h0aW5ncyAtLS0KZ2dwbG90KGRmLCBhZXMoeCA9IHVmbzIwMTApKSArCiAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGggPSA1LCBmaWxsID0gIm9yYW5nZSIsIGNvbG9yID0gImJsYWNrIiwgYWxwaGEgPSAwLjcpICsKICBsYWJzKHggPSAiTnVtYmVyIG9mIFVGTyBTaWdodGluZ3MgKDIwMTApIiwgeSA9ICJGcmVxdWVuY3kiLCB0aXRsZSA9ICJGcmVxdWVuY3kgRGlzdHJpYnV0aW9uIG9mIFVGTyBTaWdodGluZ3MgKDIwMTApIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKI1RoZSBkYXRhIGlzIHJpZ2h0LXNrZXdlZCB3aXRoIHNldmVyYWwgaGlnaC12YWx1ZSBvdXRsaWVycwojTW9zdCBpbmZlY3Rpb24gY291bnRzIGFyZSByZWxhdGl2ZWx5IGxvdyBjb21wYXJlZCB0byBhIGZldyBleHRyZW1lIGNhc2VzCiNUaGUgdmFyaWFiaWxpdHkgc3VnZ2VzdHMgdW5ldmVuIHNwcmVhZCBhY3Jvc3Mgb2JzZXJ2YXRpb25zCgpgYGB7cn0KIyAtLS0gNi4gU2NhdHRlciBQbG90OiBSZWxhdGlvbnNoaXAgYmV0d2VlbiBQb3B1bGF0aW9uIGFuZCBVRk8gU2lnaHRpbmdzIC0tLQpnZ3Bsb3QoZGYsIGFlcyh4ID0gcG9wLCB5ID0gdWZvMjAxMCkpICsKICBnZW9tX3BvaW50KGNvbG9yID0gInB1cnBsZSIsIGFscGhhID0gMC42KSArCiAgbGFicyh4ID0gIlBvcHVsYXRpb24iLCB5ID0gIk51bWJlciBvZiBVRk8gU2lnaHRpbmdzICgyMDEwKSIsIHRpdGxlID0gIlJlbGF0aW9uc2hpcCBiZXR3ZWVuIFBvcHVsYXRpb24gYW5kIFVGTyBTaWdodGluZ3MgKDIwMTApIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKI1RoZXJlIGlzIGEgd2VhayB0byBtb2RlcmF0ZSBwb3NpdGl2ZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBwb3B1bGF0aW9uIGFuZCBpbmZlY3Rpb25zCiNIaWdoZXIgcG9wdWxhdGlvbiB0ZW5kcyB0byBjb3JyZXNwb25kIHRvIGhpZ2hlciBpbmZlY3Rpb25zLCBidXQgaW5jb25zaXN0ZW50bHkKI091dGxpZXJzIHNpZ25pZmljYW50bHkgaW1wYWN0IHRoZSBvdmVyYWxsIHBhdHRlcm4KCmBgYHtyfQojIC0tLSA3LiBTY2F0dGVyIFBsb3Q6IEluZmVjdGlvbnMgdnMuIFVGT3Mgd2l0aCBQb3B1bGF0aW9uIFNpemUgLS0tCmdncGxvdChkZiwgYWVzKHggPSB1Zm8yMDEwLCB5ID0gaW5mZWN0aW9ucywgc2l6ZSA9IHBvcCkpICsKICBnZW9tX3BvaW50KGFscGhhID0gMC42LCBjb2xvciA9ICJtYXJvb24iKSArCiAgc2NhbGVfc2l6ZV9jb250aW51b3VzKG5hbWUgPSAiUG9wdWxhdGlvbiBTaXplIikgKwogIGxhYnMoeCA9ICJOdW1iZXIgb2YgVUZPIFNpZ2h0aW5ncyAoMjAxMCkiLCB5ID0gIk51bWJlciBvZiBJbmZlY3Rpb25zIiwgdGl0bGUgPSAiSW5mZWN0aW9ucyB2cy4gVUZPIFNpZ2h0aW5ncywgU2l6ZSBieSBQb3B1bGF0aW9uIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKI1BvcHVsYXRpb24gZmx1Y3R1YXRlcyBkcmFtYXRpY2FsbHkgY29tcGFyZWQgdG8gaW5mZWN0aW9ucwojSW5mZWN0aW9ucyByZW1haW4gcmVsYXRpdmVseSBzdGFibGUgd2l0aCBzbWFsbCB2YXJpYXRpb25zCiNUaGVyZSBpcyBubyBjbGVhciBzeW5jaHJvbml6ZWQgdHJlbmQgYmV0d2VlbiB0aGUgdHdvIHZhcmlhYmxlcwoKYGBge3J9CiMgLS0tIDguIFBhaXIgUGxvdDogT3ZlcnZpZXcgb2YgUmVsYXRpb25zaGlwcyAtLS0KbGlicmFyeShHR2FsbHkpCmdncGFpcnMoZGYpICsKICBnZ3RpdGxlKCJQYWlyIFBsb3Qgb2YgSW5mZWN0aW9ucywgVUZPIFNpZ2h0aW5ncywgYW5kIFBvcHVsYXRpb24iKSArCiAgdGhlbWVfbWluaW1hbCgpCmBgYAojSW5mZWN0aW9ucyBhcmUgY29uc2lzdGVudGx5IG11Y2ggaGlnaGVyIHRoYW4gVUZPIHNpZ2h0aW5ncwojVUZPIHNpZ2h0aW5ncyByZW1haW4gbG93IHdpdGggbWluaW1hbCB2YXJpYXRpb24KI1RoZXJlIGlzIG5vIGNsZWFyIHBhdHRlcm4gbGlua2luZyBib3RoIHZhcmlhYmxlcyBhY3Jvc3Mgb2JzZXJ2YXRpb25zCg==