我正在尝试绘制一个热图,以可视化方式显示几个社交媒体平台上的参与度。我已经按照建议的解决方法来处理Shiny和ggplot2之间的一些问题,但是在最后一个问题上陷入了困境:
我的ui.R文件
# ui.R
library(shiny)
# Define UI for application that draws a heat map
shinyUI(fluidPage(
# Application title
titlePanel("Social Media"),
# select platform and measure
sidebarLayout(
sidebarPanel(
selectInput("medium", "Choose a platform:",
choices = c("twitter", "facebook", "linkedin")),
selectInput("measure", "Choose a measure:",
choices = c("audience", "reach", "kudos", "engagement", "clicks"))
),
# plot heat of measure
mainPanel(
plotOutput('heat'))
)
))
我的server.R文件
library(shiny)
library(ggplot2)
library(dplyr)
library(readr)
social_media <- read_csv("data/social_media.csv")
# Define server logic required to draw a heat map
shinyServer(function(input, output) {
output$heat <- renderPlot({
plot_data <- reactive({
social_media %>%
filter(social_media$source==input$medium)
})
ggplot(plot_data(), aes_string(x="hour_of_day", y="day"),
environment = environment()) +
geom_raster(aes_string(fill="input$measure"))
})
})
我得到的不是单色图,而是单色图,其中填充似乎是作为因子绘制的度量标准:http : //i.imgur.com/tA6kX7d.png)http://i.imgur.com/ 8RLU453.png
我的数据集中的变量名称与选择的输入相对应:源:本地数据帧[6 x 20]
time date
(chr) (time)
1 03:55 PM 2014-01-02
2 03:30 PM 2014-01-03
3 04:30 PM 2014-01-06
4 06:04 PM 2014-01-07
5 11:53 AM 2014-01-08
6 04:15 PM 2014-01-08
Variables not shown: message text (chr), audience (int), reach (int), kudos (int), engagement (int), author (chr),
account name (chr), message URL (chr), clicks (int), tags (chr), source (chr), datetime (chr), date_time (time),
hour_of_day (int), day (fctr), week (dbl), month (fctr), year (dbl)
我不知道该怎么办 有什么想法吗?
更改fill="input$measure"
为fill=input$measure
。该变量已经是一个字符串。您的代码当前正在考虑将填充数据作为单个字符串(或引起其ggplot的因素)“ input $ measure”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句