This collection of code snippets provides a variety of analyses on the dataset of Battery Electric Vehicles (BEVs) and Plug-in Hybrid Electric Vehicles (PHEVs) registered through the Washington State Department of Licensing (DOL). The codes generate insights into the electric vehicle landscape and adoption patterns in Washington State, including statistics on electric range by city, counts of CAFV eligibility, popularity of electric vehicle manufacturers, range statistics (max, min, average), distribution of electric vehicle types, adoption trends by model year, and adoption by county. The results are saved in CSV files and visualized through bar charts, line charts, and pie charts.
The code snippets are designed to be easy to use and understand, and they can be modified to fit the specific needs of any user. They are a valuable tool for anyone who is interested in learning more about the electric vehicle landscape in Washington State.
County: The county where the vehicle is registered.
City: The city where the vehicle is registered.
State: The state where the vehicle is registered.
Postal Code: The postal code of the vehicle registration location
Model Year: The year the vehicle was manufactured.
Make: The manufacturer or brand of the vehicle.
Model: The specific model of the vehicle.
Electric Vehicle Type: Indicates whether the vehicle is a Battery Electric Vehicle (BEV) or a Plug-in Hybrid Electric Vehicle (PHEV).
Clean Alternative Fuel Vehicle (CAFV) Eligibility: Indicates if the vehicle is eligible for Clean Alternative Fuel Vehicle benefits.
Electric Range: The range of the vehicle on a full electric charge.
Base MSRP: The manufacturer’s suggested retail price for the vehicle.
Legislative District: The legislative district associated with the vehicle registration location.
DOL Vehicle ID: Unique identifier assigned by the Washington State Department of Licensing.
Electric Utility: The electric utility company associated with the vehicle.
2020 Census Tract: The census tract where the vehicle is registered.
Longitude: The longitude for the precise location of the vehicle.
Latitude: The latitude for the precise location of the vehicle.
More information about the dataset can be found Here
#Load necessary libraries
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(plotly)
##
## Attaching package: 'plotly'
##
## The following object is masked from 'package:ggplot2':
##
## last_plot
##
## The following object is masked from 'package:stats':
##
## filter
##
## The following object is masked from 'package:graphics':
##
## layout
#Load the Dataset
df <- read_csv("~/Desktop/datasets/eletric vehicle data 1997-2024 by DOL usa.csv")
## Rows: 134474 Columns: 17
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (8): County, City, State, Make, Model, Electric Vehicle Type, CAFV, Elec...
## dbl (9): Postal Code, Model Year, Electric Range, Base MSRP, Legislative Dis...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#Inspect the first few rows of the data
head(df)
colnames(df) # Checking column names
## [1] "County" "City" "State"
## [4] "Postal Code" "Model Year" "Make"
## [7] "Model" "Electric Vehicle Type" "CAFV"
## [10] "Electric Range" "Base MSRP" "Legislative District"
## [13] "DOL Vehicle ID" "Electric Utility" "2020 Census Tract"
## [16] "Longitude" "latitude"
summary(df) # getting the summary of the data; mean,median, standard deviation and the quartiles just to get a quick glance of what the data is all about.
## County City State Postal Code
## Length:134474 Length:134474 Length:134474 Min. :98001
## Class :character Class :character Class :character 1st Qu.:98052
## Mode :character Mode :character Mode :character Median :98122
## Mean :98259
## 3rd Qu.:98370
## Max. :99403
## Model Year Make Model Electric Vehicle Type
## Min. :1997 Length:134474 Length:134474 Length:134474
## 1st Qu.:2018 Class :character Class :character Class :character
## Median :2021 Mode :character Mode :character Mode :character
## Mean :2020
## 3rd Qu.:2022
## Max. :2024
## CAFV Electric Range Base MSRP Legislative District
## Length:134474 Min. : 0.00 Min. : 0 Min. : 1.0
## Class :character 1st Qu.: 0.00 1st Qu.: 0 1st Qu.:18.0
## Mode :character Median : 21.00 Median : 0 Median :34.0
## Mean : 74.73 Mean : 1451 Mean :29.5
## 3rd Qu.:150.00 3rd Qu.: 0 3rd Qu.:43.0
## Max. :337.00 Max. :845000 Max. :49.0
## DOL Vehicle ID Electric Utility 2020 Census Tract Longitude
## Min. : 4385 Length:134474 Min. :5.300e+10 Min. :-124.6
## 1st Qu.:160179824 Class :character 1st Qu.:5.303e+10 1st Qu.:-122.4
## Median :205919126 Mode :character Median :5.303e+10 Median :-122.3
## Mean :206321806 Mean :5.304e+10 Mean :-122.1
## 3rd Qu.:230877335 3rd Qu.:5.305e+10 3rd Qu.:-122.2
## Max. :479254772 Max. :5.308e+10 Max. :-117.0
## latitude
## Min. :45.58
## 1st Qu.:47.36
## Median :47.61
## Mean :47.47
## 3rd Qu.:47.72
## Max. :49.00
Outlier detection: Identifying and handling outliers that might distort the analysis when applicable.
boxplot(df$`Model Year`,df$`Base MSRP`,df$`Electric Range`)
#For MAKE
make_df <- table(df$Make) #create a frequency table
make_df<- data.frame(make=names(make_df),count = make_df) #convert freq table into dataframe with names and their count
make_df <- make_df[order(make_df$count.Freq,decreasing = TRUE), ] #sort into descending order
make_df <- head(make_df, 10) #create a top ten vehicle make in WA by number of vehicle produced overall into a dataframe
# For MODEL
model_df <- table(df$Model) #create a frequency table
model_df <- data.frame(model=names(model_df),count = model_df) #convert freq table into dataframe with names and their count
model_df <- model_df[order(model_df$count.Freq,decreasing = TRUE), ] #sort into descending order
model_df <- head(model_df, 10) # Create a top ten common vehicle model in WA by total count into a dataframe
#Models produced by the top 10 Make
model_by_make <- df %>%
group_by(Make, Model) %>%
summarise(count = n()) %>%
ungroup() # Group the data by 'Make' and calculate the count of each 'Model'
## `summarise()` has grouped output by 'Make'. You can override using the
## `.groups` argument.
#TESLA
tesla <- model_by_make%>% filter(Make == "TESLA") # Filter the data to get only the 'Tesla' make category
#NISSAN
nissan <- model_by_make%>% filter(Make == "NISSAN") # Filter the data to get only the 'Nissan' make category
#CHEVROLET
chevrolet <- model_by_make%>% filter(Make == "CHEVROLET") # Filter the data to get only the 'Chevrolet' make category
#FORD
ford <- model_by_make%>% filter(Make == "FORD") # Filter the data to get only the 'Ford' make category
#BMW
bmw <- model_by_make%>% filter(Make == "BMW") # Filter the data to get only the 'BMW' make category
#KIA
kia <- model_by_make%>% filter(Make == "KIA") # Filter the data to get only the 'KIA' make category
#TOYOTA
toyota <- model_by_make%>% filter(Make == "TOYOTA") # Filter the data to get only the 'Toyota' make category
#VOLKSWAGEN
volkswagen <- model_by_make%>% filter(Make == "VOLKSWAGEN") # Filter the data to get only the 'Volkswagen' make category
#VOLVO
volvo <- model_by_make%>% filter(Make == "VOLVO") # Filter the data to get only the 'Volvo' make category
#AUDI
audi <- model_by_make%>% filter(Make == "AUDI") # Filter the data to get only the 'Audi' make category
avg_range_per_model <- aggregate(df$`Electric Range`,by = list(model = df$Model), FUN = mean) # Calculate the average range for each model
colnames(avg_range_per_model) <- c("model", "avg_range") # Rename the column name
avg_range_per_model <- avg_range_per_model[order(avg_range_per_model$avg_range, decreasing = TRUE), ] #top 10
avg_range_per_model <- head(avg_range_per_model, 10) # Select the top 10 models with the highest average range
#Average range per Vehicle Make
avg_range_per_make <- aggregate(df$`Electric Range`, by = list(model = df$Make), FUN = mean)
colnames(avg_range_per_make) <- c("make", "avg_range") #Rename the column name
avg_range_per_make <- avg_range_per_make[order(avg_range_per_make$avg_range, decreasing = TRUE), ]
avg_range_per_make <- head(avg_range_per_make, 10) # Select the top 10 models with the highest average range
# Average Msrp per vehicle Make
avg_msrp_make <- aggregate(df$`Base MSRP`, by = list(make = df$Make), FUN = mean) # Calculate the average MSRP for each make
colnames(avg_msrp_make) <- c("make", "avg_MSRP") #Rename the column name
avg_msrp_make <- avg_msrp_make[order(avg_msrp_make$avg_MSRP, decreasing = TRUE), ] #sorting in descending order
avg_msrp_make <- head(avg_msrp_make, 10) # Select the top 10 models with the highest average range
#Average MSRP by Vehicle Model
avg_msrp_model <- aggregate(df$`Base MSRP`, by = list(model = df$Model), FUN = mean) #Calculate the average MSRP for each make
colnames(avg_msrp_model) <- c("model", "avg_MSRP") # Rename the column name
avg_msrp_model <- avg_msrp_model[order(avg_msrp_model$avg_MSRP, decreasing = TRUE), ] #top 10
avg_msrp_model <- head(avg_msrp_model, 10) # Select the top 10 models with the highest average range
# For Vehicle Type
vehicle_type <- table(df$`Electric Vehicle Type`) #create a frequency table
vehicle_type<- data.frame(vehicle_type=names(vehicle_type),count = vehicle_type) #convert freq table into dataframe with names and their count
vehicle_type <- vehicle_type[order(vehicle_type$count.Freq,decreasing = TRUE), ] #sort into descending order
#for CAFV
cafv<- table(df$CAFV) #create a frequency table
cafv <- data.frame(cafv=names(cafv),count = cafv) #convert freq table into dataframe with names and their count
#for Cities in WA
city <- table(df$City) #create a frequency table
city <- data.frame(city=names(city),count = city) #convert freq table into dataframe with names and their count
city <- city[order(city$count.Freq,decreasing = TRUE), ] #sort into descending order
city <- head(city, 10) # create top 10 city
#for Counties in WA
county <- table(df$County) #create a frequency table
county <- data.frame(county=names(county),count = county) #convert freq table into dataframe with names and their count
#for year on year car produced
year <- table(df$`Model Year`) # Create a frequency table of car production by year
year<- data.frame(year = as.numeric(names(year)), count = year) # Convert the frequency table into a data frame with years and their counts
year <- year[order(year$year), ] #Sort the data frame based on the years in ascending order
# Electric Vehicle Utility
utility <- table(df$`Electric Utility`) #create a frequency table
utility <- data.frame(utility=names(utility),count = utility) # convert freq table into dataframe with names and their count
utility_all <- utility[order(utility$count.Freq,decreasing = TRUE), ] #sort into descending order
utility <- head(utility_all,10 ) # create top 10 model
# district
district <- table(df$'Legislative District') #create a frequency table
district <- data.frame(district=names(district),count = district) # convert freq table into dataframe with names and their count
district$district <- reorder(district$district, as.numeric(district$count.Var1)) #reorder so the districts are in order of the districts
We initiated our analysis with a comprehensive data summary to understand the dataset’s key characteristics, distributions, and relationships. Feature engineering was conducted to create useful features for visualization and improved interpretability.
The data summary provided insights into variables, data types, and missing values. We explored numerical feature distributions and potential relationships.
Feature engineering introduced new features for effective data exploration. These features reveal hidden insights and patterns not immediately evident from raw data.
Now well-prepared, we will proceed with data visualization using various techniques such as bar charts, line charts, and scatter plots. The goal is to communicate findings intuitively and uncover valuable trends.
Our data summary and feature engineering aim to support evidence-based decision-making and contribute to achieving research objectives.
Next, the report will showcase graphical representations to enhance understanding and draw meaningful conclusions from the data. ## Data Visualization
1.Top 10 Electric vehicle Company in Washington according to data from the DOL
#Top 10 Company of electric vehicle
ggplotly(ggplot(data = make_df, mapping = aes(x=make,y= count.Freq))+ geom_bar(stat = "identity", fill= 'steelblue') + labs(title = "Top 10 Electric Vehicle Company In WA" , x = 'Make', y= 'Number of Vehicles') + theme(axis.text.x = element_text(angle = 0, hjust = 1)))
2.Top 10 Electric Vehicle Model in Washington according to data by DOL
ggplotly(ggplot(data = model_df, mapping = aes(x=model,y= count.Freq))+ geom_bar(stat = "identity", fill= "steelblue") + labs(title = "Top 10 Car models in cities of WA" , x = 'Model', y= 'Number of Vehicles') + theme(axis.text.x = element_text(angle = 0, hjust = 1)) ) #adjusting the x-axis label orientation
3.Distribution of Models produced by the Top 10 Make
3.1 Tesla
ggplotly(ggplot(tesla, aes(x = Model, y = count)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Distribution of Models produced by the Top 10 Make", x = "Tesla", y = "Number of Vehicle ") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
3.2 Nissan
ggplotly(ggplot(nissan, aes(x = Model, y = count)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Distribution of Models produced by the Top 10 Make", x = "Nissan", y = "Number of Vehicle") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
3.3 Chevrolet
ggplotly(ggplot(chevrolet, aes(x = Model, y = count)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Distribution of Models by the Top 10 Make", x = "Chevrolet", y = "Number of Vehicle") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
3.4 Ford
ggplotly(ggplot(ford, aes(x = Model, y = count)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Distribution of Models by the Top 10 Make", x = "Ford", y = "Number of Vehicle") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
3.5 BMW
ggplotly(ggplot(bmw, aes(x = Model, y = count)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Distribution of Models by the Top 10 Make", x = "BMW", y = "Number of Vehicle") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
3.6 KIA
ggplotly(ggplot(kia, aes(x = Model, y = count)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Distribution of Models by the Top 10 Make", x = "Kia", y = "Number of Vehicle") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
3.7 Toyota
ggplotly(ggplot(toyota, aes(x = Model, y = count)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Distribution of Models by the Top 10 Make", x = "Toyota", y = "Number of Vehicle") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
3.8 Volkswagen
ggplotly(ggplot(volkswagen, aes(x = Model, y = count)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Distribution of Models by the Top 10 Make", x = "Volkswagen", y = "Number of Vehicle") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
3.9 Volvo
ggplotly(ggplot(volvo, aes(x = Model, y = count)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Distribution of Models by the Top 10 Make", x = "Volvo", y = "Number of Vehicle") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
3.10.Audi
ggplotly(ggplot(audi, aes(x = Model, y = count)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Distribution of Models by the Top 10 Make", x = "Audi", y = "Number of Vehicle") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
4.Range for each Vehicle produced by the Make
ggplotly(ggplot(avg_range_per_make, aes(x = make, y = avg_range)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Average Electric Range of Vehicles by the Top 10 Make", x = "Company", y = "Average Electric Range") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
5.Average Electric range of the Top 10 models
ggplotly(ggplot(avg_range_per_model, aes(x = model, y = avg_range)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Average Electric Range of of the Top 10 Models", x = "Model", y = "Average Electric Range") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
6.Average Manufacturer’s Suggested Retail Price for Vehicles produced by the Top 10 Make.
ggplotly(ggplot(avg_msrp_make, aes(x = make, y = avg_MSRP)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Average MSRP of the Top 10 Make", x = "Make", y = "Average MSRP") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
7.Average Manufacturer’s suggested retail price for the Top 10 Vehicle Models
ggplotly(ggplot(avg_msrp_model, aes(x = model, y = avg_MSRP)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Average MSRP of of the Top 10 Models", x = "Model", y = "Average MSRP") + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) + theme_minimal())
8.Distribution of the Electric Vehicle types in WA
vehicle_type$pct <- round(100*vehicle_type$count.Freq/sum(vehicle_type$count.Freq))
ggplot(vehicle_type, aes(x = "", y = count.Freq , fill = vehicle_type)) + geom_bar(stat ="identity", color ='black') + geom_text(aes(label = paste(round(pct,1),'%')),position = position_stack(vjust = 0.5)) + labs(title = "Distribution of Vehicle Types in washington", ) + coord_polar("y") + theme_void() # vehicle type
9.Distribution of Vehicles eligible for Clean Alternative Fuel (CAFV)
cafv$pct <- round(100*cafv$count.Freq/sum(cafv$count.Freq))
ggplot(cafv, aes(x = "", y = count.Freq , fill = cafv)) + geom_bar(stat ="identity", color ='black') + geom_text(aes(label = paste(round(pct,1),'%')),position = position_stack(vjust = 0.5)) + labs(title = "Distribution of CAFV in washington" ) + coord_polar("y") + theme_void() # cafv
10.Timeline of Total Vehicles licensed year by year in WA
ggplotly(ggplot(data =year, mapping = aes(x = year, y = count.Freq, group = 1)) + geom_line() + labs(title = "Electric Vehicle Adoption in washington from 1997-2024", x = "Year", y = "Number of Vehicle")+ theme_minimal() + xlim(1997, 2024))
11.Electric Vehicle utility
ggplotly(ggplot(utility, aes(x = utility, y = count.Freq)) + geom_bar(stat = "identity", fill = "steelblue", color = "black") + labs(title = "Numbers of Electric Utility Vehicles associated with the Company", x = "Electric Utility Company", y = "Number of Vehicles") + theme(axis.text.x = element_text(angle = 90) + theme_minimal()))
12.Numbers of Vehicles in each county
ggplotly(ggplot(county, aes(x = county, y = count.Freq)) + geom_bar(stat = "identity", fill = "steelblue") + labs(title = "Electric Vehicles in WA counties", x = "County", y = "Number of Vehicles") + theme(axis.text.x = element_text(angle = 90, hjust = 1)))
13.City
ggplotly(ggplot(data = city, mapping = aes(x=city,y= count.Freq))+ geom_bar(stat = "identity", fill= "steelblue") + labs(title = "Top 10 Car Make in cities of WA" , x = 'City', y= 'Number of Make') + theme(axis.text = element_text(angle = 0, hjust = 1))) # adjusting x-axis label orientation)
14.Districts of Washington
ggplotly(ggplot(district, aes(x = district, y = count.Freq)) + geom_point() + labs(title = "Electric Vehicle Distribution by Legistlative District", x = "District", y = "Count") + theme(axis.text.x = element_text(angle = 45, hjust = 1)) + theme_minimal())
In this section, we present a summary of the key data visualizations derived from our analysis. Each visualization provides valuable insights into the dataset, helping us gain a deeper understanding of the underlying trends and patterns.
1.Company: The bar chart represents the top 10 Make manufacturing electric vehicles in Washington State based on their counts. Tesla, Nissan, and Chevrolet stand out as the most popular Make, with Tesla leading by a significant margin. This visualization offers valuable insights into the state’s electric vehicle market, highlighting the dominance of Tesla and the popularity of Nissan and Chevrolet among consumers in Washington for electric vehicles.
2.Model: The bar chart displays the top 10 electric vehicle models in Washington based on their counts. Model 3 and Model Y produced by Tesla, along with Nissan LEAF, occupy the top three spots. This aligns with the previous visualization, where Tesla and Nissan were identified as the leading Make manufacturing electric vehicles in Washington. The chart reaffirms the popularity of Tesla’s Model 3 and Model Y, as well as Nissan LEAF, among consumers in the state.
3.Breakdown of top 10 Comapnies: The analysis of the Top 10 manufacturers was further expanded to gain deeper insights into the popularity of each manufacturer’s models in Washington state. By exploring the popularity of specific models produced by each manufacturer, we were able to uncover valuable information about consumer preferences and market trends in the region. This deeper analysis allows us to understand the specific impact of individual models on the overall popularity of each manufacturer in the electric vehicle market of Washington state.
3.1 Tesla: In Washington State, Model 3 and Model Y were significantly more popular than other Tesla models, indicating a strong preference for these two models among residents. On the other hand, Roadster was the least preferred Tesla model in the region. This information highlights the dominance of Model 3 and Model Y in the local market and suggests that Roadster may not have garnered as much interest among consumers in Washington.
3.2 Nissan: In Washington, only two Nissan models, Ariya and Leaf, were available for analysis. Among these, Leaf emerged as the top choice, with a significantly higher usage compared to Ariya. Leaf recorded a substantial usage of 13,008, while Ariya was relatively less utilized, with only 130 instances. This data highlights the strong preference for Leaf as the preferred car model for Nissan in Washington, overshadowing the usage of Ariya by a substantial margin.
3.3 Chevrolet: In Washington, among the four available models, Bolt EV and Volt were significantly preferred over the other models. These two models stood out with a notably higher level of popularity and usage compared to the remaining models. The data indicates a strong preference for Bolt EV and Volt among consumers in Washington, making them the top choices in the region.
3.4 Ford: In Washington, there are a total of 8 models of Ford electric vehicles. Among these, Mustang Mach-E, Fusion, and C-Max emerged as the preferred models, recording a significantly higher count compared to the other models. These three models stand out with their popularity among consumers in the region. The data highlights the strong preference for Mustang Mach-E, Fusion, and C-Max as the top choices among Ford electric vehicle models in Washington.
3.5 BMW: In Washington, there were a total of 11 models of BMW electric vehicles available for analysis. Among these models, X5 and i3 were the most popular choices, recording counts of 1,926 and 1,892, respectively. These two models stood out with their higher usage compared to the other BMW electric vehicle models. The data suggests that X5 and i3 are the preferred choices among consumers in Washington when it comes to BMW electric vehicles.
3.6 KIA: In Washington, there are a total of 7 different models available, and among these, NIRO and EV6 are the most popular choices, leading significantly in counts compared to the other models. The data visualization provides valuable insights into the popularity of Kia’s models in the region. It highlights the dominance of NIRO and EV6 as the preferred choices among consumers in Washington when it comes to Kia’s electric vehicles. These insights can be valuable for understanding the market trends and preferences for Kia’s electric vehicles in the state.
3.7 Toyota: In Washington, Toyota offers several electric vehicle models. Among these models, Prius Prime, Rav 4 Prime, and Prius plug-in stand out as the most popular choices, with Prius Prime leading significantly in terms of counts. This information is effectively represented in a bar chart, showcasing the popularity of each Toyota model based on their respective counts in Washington. The visualization provides valuable insights into consumer preferences for Toyota electric vehicles in the region, highlighting the dominance of Prius Prime as the preferred choice among consumers.
3.8 Volkswagen: In Washington, there are two Volkswagen electric vehicle models available for analysis. Among these, ID.4 emerges as the most popular choice with a significantly higher count of 2,473, compared to E-Golf’s count of 1,045. The bar chart clearly illustrates the preference for ID.4 over E-Golf, showcasing the model’s dominance in terms of usage among consumers in the region.
3.9 Volvo:In Washington, there are a total of seven Volvo electric vehicle models available for analysis. Among these models, XC90, XC60, and XC40 stand out as the most popular choices, leading significantly in counts compared to the other models. The bar chart clearly illustrates the dominance of XC90, XC60, and XC40, reflecting their popularity among consumers in the region for Volvo electric vehicles.
3.10 Audi: The bar chart displays the counts of the 11 Volvo electric vehicle models available in Washington. Among these models, E-tron, A3, and Q5-E emerge as the top three popular choices, leading significantly in popularity compared to the other models. The chart highlights the dominance of E-tron, A3, and Q5-E, indicating their strong preference among consumers in the region for Volvo electric vehicles.
4.Top 10 Make by Average Range: During the analysis of the average range of vehicles produced by various Make, an interesting finding emerged. Jaguar stands out as the leader with an astronomical average range of 205 miles on a full charge, despite not being among the top 10 popular Make among consumers. In comparison, Tesla and Nissan follow closely with average ranges of 100 miles and 86 miles, respectively, securing the second and sixth positions. Think and Weego are tied for third place, while Chevrolet, Fiat, Smart, Kia, Audi rank fourth, fifth, sixth, seventh, and eighth, respectively. This data reveals valuable insights into the range capabilities of electric vehicles produced by different manufacturers, highlighting Jaguar’s exceptional performance in this aspect.
5.Average Range for models: The visualization reveals intriguing insights into the range capabilities of the top 10 electric vehicle models in Washington. Hyundai Kona takes the top spot with an impressive range of 258 miles on a full charge. Following closely are Tesla Roadster with 234 miles and Jaguar I-Pace with 205 miles.
The subsequent positions are occupied by Tesla Model S (185 miles), Tesla Model X (160 miles), Chevrolet Bolt EV (160 miles), Tesla Model 3 (129 miles), Audi E-Tron (122 miles), Volkswagen E-Golf (107 miles), and Toyota Rav4 (102 miles), ranking second to tenth, respectively. This data sheds light on the varying range capacities of these electric vehicle models, showcasing the impressive performance of Hyundai Kona and Tesla’s presence among the top-ranked models in terms of range.
6.Top 10 Base MSRP by company: From the visualization, it becomes evident that Fisker has the highest average base MSRP ($102,000) among all the Make, indicating a premium pricing strategy for their electric vehicles. Wheego electric cars follows in second place with a significantly lower average base MSRP of $32,995.
The third to tenth positions are occupied by Cadillac, Subaru, Mini, Volvo, Porsche, BMW, Kia, and Chrysler, respectively. This data highlights the varying pricing strategies of different Make in the electric vehicle market, with Fisker positioned at the higher end of the price spectrum and Wheego electric cars offering a more budget-friendly option.
7.Top 10 Base MSRP by Model: From the visualization, it is evident that the Porsche 918 is the most expensive vehicle model with an average base MSRP of /$845,000. In contrast, the other models fall within the range of /$100,000 and lower on average. Tesla Roadster takes the second position with an average base MSRP of /$105,696, highlighting the substantial difference in pricing compared to the top-ranking Porsche 918 model.
8.Distribution of Electric vehicle Types: The visualization demonstrates a clear preference for Plug-in Hybrid Electric Vehicles (PHEVs) over Battery Electric Vehicles (BEVs) among electric vehicle users. A significant majority of approximately 77% opt for PHEVs, highlighting their popularity in the dataset. This finding suggests that PHEVs are the preferred choice among consumers, indicating their widespread appeal and adoption in the electric vehicle market.
9.Clean Alternative Fuel Vehicle (CAFV) eligibility: The visualization indicates that among electric vehicle consumers in Washington, 45% of the vehicles are eligible for CAFV (Clean Alternative Fuel Vehicle) incentives. Additionally, 42% of the vehicles have unknown eligibility status, likely due to insufficient research on their battery range. Lastly, 12% of the vehicles are deemed ineligible for incentives due to their low battery range. This data sheds light on the proportion of electric vehicles that qualify for CAFV incentives and provides valuable insights into the current state of incentives uptake in the region.
10.Adoption of Electric Vehicle in WA 1997-2024: The line chart depicts the number of electric vehicles licensed in Washington from 1997 to 2024. The chart reveals a minimal adoption of electric vehicles until 2010, after which there is a gradual increase in adoption over the years. However, there are intermittent drop-offs along the timeline. The adoption of electric vehicles reaches its peak in 2022, showing a substantial rise in electric vehicle registrations. Following this peak, there is a decline in adoption as seen in the subsequent years. The line chart provides valuable insights into the growth and fluctuations in electric vehicle adoption in Washington over the years, indicating a notable increase in recent times.
11.Utility Make with electric vehicle: The bar chart illustrates the adoption of electric vehicles for utility by Make in various cities of Washington. Among these cities, Tacoma stands out with the highest adoption of electric vehicles by Puget Sound Energy, reaching an impressive count of 49,285 vehicles. This data showcases the significant impact of Puget Sound Energy’s electric vehicles in the city of Tacoma, indicating a strong commitment to sustainable energy practices in the region.
12.Counties of Washington: The visualization highlights the number of electric vehicles in different counties of Washington. King County stands out with an astronomical count of 70,682 electric vehicles, showcasing a substantial adoption of electric vehicles in the region. In comparison, Snohomish County follows with 15,226 vehicles, indicating a significant difference in the adoption of electric vehicles compared to other counties. This data emphasizes the dominant role of King County in electric vehicle adoption and underscores the varying levels of adoption across different counties in Washington.
13.Vehicles in Cities of Washington: The visualization displays the counts of electric vehicles in various cities of Washington. Seattle stands out with the highest number of electric vehicles, significantly surpassing other cities. This finding aligns with the visualization of the counties, as King and Snohomish counties, which include Seattle, also show the highest adoption of electric vehicles. The data indicates a strong correlation between the high number of electric vehicles in Seattle and their prevalence in King and Snohomish counties, showcasing the city’s leadership in electric vehicle adoption within the region.
14.** Vehicles in Legislative districts**: The scatterplot depicts the number of vehicles in the 49 Legislative districts of Washington. District 41 stands out with the highest count of vehicles, reaching 9,012, making it the most populated district in terms of vehicles. On the other hand, District 15 has the lowest count of vehicles, with only 317 in total. This data showcases the varying vehicle populations across different Legislative districts in the state, with District 41 being the most densely populated and District 15 having the lowest vehicle count.
Based on the analyses and visualizations, we can draw the following insights:
Tesla Dominance: Throughout the data analysis, Tesla consistently emerged as a dominant player in the electric vehicle market in Washington. Model 3 and Model Y were famously popular, taking the top spots in terms of adoption, while Tesla Roadster was the least preferred Tesla model.
Nissan and Chevrolet Popularity: Alongside Tesla, Nissan and Chevrolet also showcased strong popularity among consumers in Washington. Nissan LEAF was among the top three preferred models, while Chevrolet Bolt EV and Volt were significantly preferred, indicating a diverse range of electric vehicles among these manufacturers.
Jaguar’s Remarkable Range: Despite not being among the top 10 popular Make, Jaguar stood out with its I-Pace model, leading with an average range of 205 miles on a full charge. This highlights Jaguar’s focus on providing a competitive range for its electric vehicle.
Range vs. Popularity: There was a noticeable correlation between range and popularity. Models like Hyundai Kona and Tesla Roadster, with higher ranges, were among the top preferred vehicles, indicating that range is an important factor influencing consumer choices.
Price Point Impact: Fisker stood out with a significantly high base MSRP compared to other Make, while Wheego electric cars offered a more budget-friendly option, suggesting that pricing plays a crucial role in consumer decision-making.
PHEV Preference: Consumers in Washington exhibited a strong preference for Plug-in Hybrid Electric Vehicles (PHEVs) over Battery Electric Vehicles (BEVs). Approximately 77% of electric vehicle users opted for PHEVs, indicating their popularity in the region.
Adoption Trends Over Time: The line chart revealed that electric vehicle adoption in Washington was initially minimal until 2010, after which it gradually increased with intermittent drop-offs. The adoption reached its peak in 2022 before experiencing a decline.
Regional Differences: The bar chart showed significant variations in electric vehicle adoption among cities and counties. Seattle stood out as the city with the highest number of electric vehicles, which aligned with King and Snohomish counties having the highest adoption rates.
Legislative District Impact: The scatterplot highlighted the varying vehicle populations across Legislative districts, with District 41 having the highest count and District 15 the lowest. This indicates regional disparities in electric vehicle usage.