Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hide code option for interactive graph #224

Open
PykaAlexandro opened this issue Sep 29, 2024 · 0 comments
Open

Hide code option for interactive graph #224

PykaAlexandro opened this issue Sep 29, 2024 · 0 comments

Comments

@PykaAlexandro
Copy link

Hello,

great work you are doing here guys, I have a request, if I may, I would like to have the possibility to have an interactive code chunk (#| context: interactive, to have the "Run Code" button) but to hide the actual code.

That would be neat when you have lenghty code chunks, especially with interactive ggplot2 graph with a lot of customization.

I would then choose the parameters in a previous code chunk, that has the #| context: interactive as well, but in this case the code should be visible.

I hope I made myself clear, I would add some code, commented:

#| message: 'false'
#| context: setup
#*this is to load the data frame*
url <- "https://raw.githubusercontent.com/PykaAlexandro/DataKitFall2024/refs/heads/main/data_1-FL_renamed.csv"
download.file(url, "data_1-FL_renamed.csv")
data_1_FL_renamed <- read_csv("data_1-FL_renamed.csv")
#| message: 'false'
#| context: interactive
#*this is where I choose the parameters for the ggplot2 graph*
#choosing the county and setting its Area Median Income
county_fips <- 95
county_AMI <- 90400
#| message: 'false'
#| context: interactive
#*this is the actual graph, I don't like that it shows all the code, I would like it to be hidden :)*
#we construct the graph for the county of choice
general_graph <- data_1_FL_renamed %>%
  filter(county_fips_code == county_fips) %>%
#we change the negative values (present with missing data) to NAs  
  mutate(across(everything(), ~ case_when(.x >=0 ~ .x))) %>%
  ggplot(aes(med_house_income_est)) +
  geom_density()
#we save the graph's information into an object
general_built <- ggplot_build(general_graph)
general_built_data <- data.frame(general_built$data[[1]], stringsAsFactors = F)
#we add the segments based on the county's AMI
general_built_data <- general_built_data %>%
  mutate(Income = case_when(x < county_AMI * 0.3 ~ "Extremely Low",
                            x >= county_AMI * 0.3 & x < county_AMI * 0.5 ~ "Very Low",
                            x >= county_AMI * 0.5 & x < county_AMI * 0.8 ~ "Low",
                            x >= county_AMI * 0.8 & x < county_AMI * 1.2 ~ "Moderate",
                            x >= county_AMI * 1.2 ~ "Upper"),
         Income = factor(Income, levels = c("Extremely Low", "Very Low", "Low", "Moderate", "Upper"), ordered = TRUE))
#we define a colorblind friendly palette
cbbPalette <- c("#000000", "#E69F00", "#F0E442", "#56B4E9", "#009E73")
#we plot the income distribution segmented by the different income levels
ggplot(data = general_built_data, aes(x, y, fill = Income)) +
  geom_line() +
  geom_area() +
  geom_vline(xintercept = county_AMI, linetype = 2) +
  scale_x_continuous(labels =  scales::label_dollar()) +
  scale_y_continuous(labels = NULL, breaks = NULL) +
  scale_fill_manual(values = cbbPalette) +
  theme(legend.position = "bottom",
        legend.title = element_blank()) +
  labs(x = NULL,
       y = NULL,
       title ="Distribution of Income per Census Tract for Orange County, Florida")

thanks for your time, keep up the good work, cheers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant