r - 在 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
此外,有人可以向我解释一下输入是如何在闪亮的情况下工作的,以及我如何根据用户输入显示数据?
感谢您的帮助!如果您需要我的任何东西(或者如果我搞砸了),请告诉我!
解决方案
推荐阅读
- apache-spark - aws s3a 读取正常,但写入操作出错
- flutter - GlobalMaterialLocalizations 和 flutter_localizations 的意义何在?
- excel - 在 Excel 中创建由 CTRL+ 和 CTRL- 映射的放大和缩小循环函数
- python - 如何在初始化类python期间覆盖实例变量属性行为
- documentation-generation - 有没有办法使用 Sandcastle Help File Builder 工具仅生成更新文件的文档?
- c# - 字典:在给定键的范围内查找最小值/最大值并返回它们的键
- google-app-engine - 如何启用 Cloud Pub/Sub API 以在 App Engine 中使用它
- reactjs - 多次使用 React-Dom 的渲染
- haskell - 无法与预期类型匹配
- python - 如何获取 Peewee ORM 包含使用连接的列