前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shiny学习(五)||使用R脚本和数据

Shiny学习(五)||使用R脚本和数据

作者头像
生信编程日常
发布2020-05-26 22:01:52
9120
发布2020-05-26 22:01:52
举报
1.数据准备

建立一个census-app的目录,并在目录下新建data目录存储counties.rds文件,点击下载counties.rds

代码语言:javascript
复制
#数据读入
counties <- readRDS("Documents/learnfile/shiny/test/census-app/data/counties.rds")
head(counties)

image.png

2.下载R脚本

helpers.R是一个R脚本,可以制作地图,并使用颜色显示的区域变化。在这个例子中,helpers.R将创建percent_map函数绘制counties.rds的数据。helpers.R 在此处下载。

image.png

helpers.R使用R中的mapsmapproj软件包。

代码语言:javascript
复制
#安装
install.packages(c("maps", "mapproj"))
3.绘制地图

可以通过percent_map函数绘制一个choropleth地图。

代码语言:javascript
复制
library(maps)
library(mapproj)
source("census-app/helpers.R")
counties <- readRDS("census-app/data/counties.rds")
percent_map(counties$white, "darkgreen", "% White")
4.建立app.R文件

将以下代码复制并粘贴到您的census-app目录下,新建一个app.R文件

代码语言:javascript
复制
# Load packages ----
library(shiny)
library(maps)
library(mapproj)

# Load data ----
counties <- readRDS("data/counties.rds")

# Source helper functions -----
source("helpers.R")

# User interface ----
ui <- fluidPage(
  titlePanel("censusVis"),
  
  sidebarLayout(
    sidebarPanel(
      helpText("Create demographic maps with 
        information from the 2010 US Census."),
      
      selectInput("var", 
                  label = "Choose a variable to display",
                  choices = c("Percent White", "Percent Black",
                              "Percent Hispanic", "Percent Asian"),
                  selected = "Percent White"),
      
      sliderInput("range", 
                  label = "Range of interest:",
                  min = 0, max = 100, value = c(0, 100))
    ),
    
    mainPanel(plotOutput("map"))
  )
)

# Server logic ----
server <- function(input, output) {
  output$map <- renderPlot({
    data <- switch(input$var, 
                   "Percent White" = counties$white,
                   "Percent Black" = counties$black,
                   "Percent Hispanic" = counties$hispanic,
                   "Percent Asian" = counties$asian)
    
    color <- switch(input$var, 
                    "Percent White" = "darkgreen",
                    "Percent Black" = "black",
                    "Percent Hispanic" = "darkorange",
                    "Percent Asian" = "darkviolet")
    
    legend <- switch(input$var, 
                     "Percent White" = "% White",
                     "Percent Black" = "% Black",
                     "Percent Hispanic" = "% Hispanic",
                     "Percent Asian" = "% Asian")
    
    percent_map(data, color, legend, input$range[1], input$range[2])
  })
}

# Run app ----
shinyApp(ui, server)
5.保存app.R文件并运行runApp("census-app")
代码语言:javascript
复制
runApp("census-app")

image.png

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.数据准备
  • 2.下载R脚本
  • 3.绘制地图
  • 4.建立app.R文件
  • 5.保存app.R文件并运行runApp("census-app")
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档