繁体   English   中英

在R中使用ggplot和Shiny制作条形图

[英]Making a bar graph with ggplot and Shiny in R

我正在尝试使用R中的ggplot和Shiny制作条形图,但是我的数据以一种奇怪的方式构造,这似乎使此任务比预期的要困难。 数据框看起来像这样:

Name       Percent 1     Percent 2    Percent 3
A          45            10           45
B          30            20           50
C          10            35           55

基本上,我想使我的条形图根据某人的选择将每个百分比显示为一个“条形”。 例如,如果我的Shiny应用程序的下拉菜单显示“选择名称”,并且有人选择A,则结果图形应为三个条形,分别显示45%,10%和45%,分别为“ Percent 1”,“ Percent 2” ”和“百分比3”作为标签。

谢谢你的帮助!

首先,您需要确保您拥有“整洁的数据”(=每个变量都在一个列中,并且每个列都是一个变量)。 为此,您可以使用tidyr包的collect()函数; 例如:

gather(stack, percent, value, -Name)

您可以在此处找到有关整理数据的更多信息: https : //r4ds.had.co.nz/tidy-data.html

我认为您必须先整理一些数据,然后才能对此数据进行任何可视化。 以下是一些可以帮助您完成此工作的代码示例:

stack <- data.frame( name = c('A','B','C'),
                      percent1 = c(45,10,45),
                      percent2 = c(30,20,50),
                      percent3 = c(10,35,55),
                      stringsAsFactors = FALSE)
stack_ <- stack %>% gather(percent, value, percent1:percent3)

stack_ <- stack_ %>% filter(name == 'A')

p<-ggplot(data=stack_, aes(x=percent, y=value)) +
  geom_bar(stat="identity")
p

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM