首页 > 解决方案 > 在 Shiny 中绘制折线图,​​并使用侧边栏面板的输入来显示所需的图形

问题描述

老实说,我是 Shiny(和 R)的新手。我通过使用 plotly 和 ggplot 创建图表来开始我的项目。它们很好,功能齐全。问题是:有没有办法直接显示我已经通过闪亮在 R 中创建的这些图表?还是我必须在 Shiny 中重新创建图表才能显示它们?这是我创建的绘图示例以及一些代码片段

#global CO2 emissions
vex <- c("region", "abrev", "Year", "emission")
annual_co2_emissions_per_countryUSA <- read_csv("annual-co2-emissions-per-countryUSA.csv")
colnames(annual_co2_emissions_per_countryUSA) <- vex 
co2_data <- annual_co2_emissions_per_countryUSA %>% 
  filter("World" == region) %>% 
  filter(1977 < Year) %>% 
  select(region, Year, emission)

#to check if the correct data is allocated
#seaice_1 <- read_csv("~/Desktop/CSCI_487/seaice.csv") %>% 
#  filter(1988 == Year)

#Sea ice average 
seaice <- read_csv("~/Desktop/CSCI_487/seaice.csv") %>% 
  select(Year, Extent) %>% 
  group_by(Year) %>% 
  summarise(n=n(), total_extent = sum(Extent))
seaice$avg <- seaice$total_extent/seaice$n 
seaice <- seaice %>% 
  select(Year, avg)

#Global temperatures 
vex <- c("Entity", "Year", "Median_Temp", "upper", "lower")
global_temp <- read_csv("/Users/grantgrisham/GitHub/Senior-Project/Senior-Project/temperature-anomaly.csv")
colnames(global_temp) <- vex
g_temp_data <- global_temp %>% 
  filter("Global" == Entity) %>% 
  filter(1977 < Year) %>% 
  select(Entity, Year, Median_Temp)
  
#world comparison 
comparison <- left_join(co2_data, seaice, by = "Year")
comparison <- left_join(comparison, g_temp_data, by = "Year") %>% 
  select(-Entity, -region)
colors <-c("SeaIce sq. km" = "red", "1/1000 Billion\ntons CO2" = "blue", "Avg. Global Temp." = "green")
comparison$emission <- comparison$emission / 1000
comparison$Median_Temp <- comparison$Median_Temp * 10
fig <- plot_ly(comparison, x = ~Year)
fig <- fig %>% add_lines(y = ~emission, name = "1/1000 Billions\ntons CO2")
fig <- fig %>% add_lines(y = ~avg, name = "Seaice sq. KM")
fig <- fig %>% add_lines(y = ~Median_Temp, name = "Avg. Global Temp")
fig <- fig %>% layout(
  title = "Global Warming Comparison",
  xaxis = list(
    rangeslider = list(type = "date", format="yyyy")),
  yaxis = list(title = "Data"))
  fig

阴谋: 线形图

此外,有人可以向我解释一下输入是如何在闪亮的情况下工作的,以及我如何根据用户输入显示数据?

感谢您的帮助!如果您需要我的任何东西(或者如果我搞砸了),请告诉我!

标签: rshinyplotly

解决方案


推荐阅读