0

I have a dataframe that shows the number of car sales in each country for years 2000 to 2020. I wish to plot a line graph to show how the number of car sales have changed over time for only a specific country/row, with year on the x axis and sales on the y axis. How would I do this using ggplot?

1

2 Answers 2

0

You perhaps want this

#toy_data
sales
#>   Country 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
#> 2       A 1002  976  746  147 1207  627  157 1481 1885 1908  392
#> 3       B  846  723 1935  176 1083  636 1540 1692  899  607 1446
#> 4       C 1858  139 1250  121 1520  199  864  238 1109 1029  937
#> 5       D  534 1203 1759  553 1765 1784 1410  420  606  467 1391

library(tidyverse)
#for all countries
sales %>% pivot_longer(!Country, names_to = 'year', values_to = 'sales') %>%
  mutate(year = as.numeric(year)) %>%
  ggplot(aes(x = year, y = sales, color = Country)) +
  geom_line()

#for one country
sales %>% pivot_longer(!Country, names_to = 'year', values_to = 'sales') %>%
  mutate(year = as.numeric(year)) %>%
  filter(Country == 'A') %>%
  ggplot(aes(x = year, y = sales)) +
  geom_line()

Created on 2021-06-07 by the reprex package (v2.0.0)

Sign up to request clarification or add additional context in comments.

Comments

0

Suppose you have a data frame that looks like this:

#make dummy df
df <- matrix(sample(1:100, 63), ncol=21, nrow=3)
rownames(df) <- c("UK", "US", "UAE")
colnames(df) <- 2000:2020

Here I generated some random data for 21 years between 2000 and 2020, and for three countries. To get a line plot with ggplot for UK, I did:

data_uk <- data.frame(year=colnames(df), sales=df["UK",], row.names=NULL)
ggplot(data=data_uk, aes(x=year, y=sales, group=1)) + geom_point() + geom_line()

Example plot

1 Comment

For more flexibility, instead of creating data_uk you could also just do new_df = as.data.frame(t(df)). Then in ggplot, you can say x=UK or x=UAE. Just faster to change and less code to write.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.