[英]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.