Analysis in R: ggplot2 interactive! The “ggiraph” package

RAnalytics

This package makes the graphs in the “ggplot2” package interactive. The example shows the “ggom_point_interactive” and “ggom_boxplot_interactive” commands to make ggom_point and ggom_boxplot interactive, and the command to save them as html files in a working folder.

This package includes many commands. Please refer to the following HP for commands that cannot be fully introduced.

ggiraph:https://davidgohel.github.io/ggiraph/index.html

Package version is 0.8.6. Checked with R version 4.2.2.

スポンサーリンク
Sponsored Link

Install Package

Run the following command.

#Install Package
install.packages("ggiraph")

Example

Please check the comments and the package help for details. If the characters displayed on click are not UTF-8, an error occurs. The “stri_enc_toutf8” command from the “stringi” package is used to avoid character errors.

The “saveWidget” command of the “htmlwidgets” package is used to save the results as an html file.

#Loading the library
library("ggiraph")

###Create Data#####
#Install the tidyverse package if it is not already there
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
#Install the stringi package if it is not already there
if(!require("stringi", quietly = TRUE)){
  install.packages("stringi");require("stringi")
}
set.seed(1234)
n <- 100
TestData <- tibble(Group = sample(paste0("Group", 1:4), n,
                                  replace = TRUE),
                   ID = sample(LETTERS[1:5], n, replace = TRUE),
                   X_num_Data = sample(c(1:30), n, replace = TRUE),
                   Y_num_Data = sample(c(51:100), n, replace = TRUE)) %>%
  #Tooltip Data
  mutate(Tooltip = paste0( "Group Nmae<br>", Group)) %>%
  #Show clic Data
  mutate(Click = stri_enc_toutf8(sprintf("alert(\"X Value: %s。<br>Y Value: %s\")",
                                         round(X_num_Data, 2), round(Y_num_Data, 2))))
########

##geom_point_interactive command
#Scatter Plot
ggplot(TestData, aes(x = X_num_Data, y = Y_num_Data,
                     color = Group)) +
  geom_point() + 
  labs(x = "Data1", y = "Data2", title = "TEST PLOT", color = "Group Name")

###Interactive#####
#Add aes option
#Show mouse-over infomation: tooltip option
#Show click infomation: onclick option
PlotData <- ggplot(TestData,
                   aes(x = X_num_Data, y = Y_num_Data,
                       color = Group, tooltip = Tooltip,
                       onclick = Click))

#Interactive scatterplot: geom_point_interactive command
PlotData <- PlotData +
  geom_point_interactive() + 
  labs(x = "Data1", y = "Data2",
       title = "Interactive Point_Plot", color = "Group Name")

#Plotting interactive graphs: girafe command
girafe(ggobj = PlotData)
##########################################################

##geom_boxplot_interactive command
#BoxPlot
ggplot(TestData, aes(x = ID, y = Y_num_Data,
                     fill = ID)) +
  geom_boxplot() + facet_grid(~Group) +
  labs(x = "Data1", y = "Data2", title = "TEST PLOT", color = "Group Name")

###Interactive#####
#Show Group: data_id option
PlotData <- ggplot(TestData,
                   aes(x = ID, y = Y_num_Data,
                       tooltip = ID, data_id = ID))

#Interactive box plot: geom_boxplot_interactive command
PlotData <- PlotData +
  geom_boxplot_interactive() +
  facet_grid(~Group) +
  labs(x = "ID", y = "Y_num_Data",
       title = "Interactive Box_Plot", fill = "Group Name")

#Plot interactive graph: girafe command
#Set mouse-over color: opts_hover option
girafe(ggobj = PlotData,
       options = list(
         opts_hover(css = "fill:#5c463e;cursor:pointer;")))
##########################################################

###Save in working folder with html file#####
#Install the htmlwidgets package if it is not already there
if(!require("htmlwidgets", quietly = TRUE)){
  install.packages("htmlwidgets");require("htmlwidgets")
}
#saveWidget command to save
#girafe command with widget option
saveWidget(file = "geom_boxplot_interactive.html",
           widget = girafe(ggobj = PlotData,
                           options = list(
                             opts_hover(css = "fill:#5c463e;cursor:pointer;"))))

Output Example

・geom_point_interactive command

Click on a point to view the data.

・geom_boxplot_interactive command

When you mouse over a box plot, the color of the box plot with the same ID changes.


I hope this makes your analysis a little easier !!

Copied title and URL