我需要生成一个包含以下内容的条形图:
我有一个包含以下内容的csv文件:类别原因时间值
示例数据集:
Category Reason Time Value
C1 R1 T1 1
C2 R1 T2 2
C1 R2 T1 3
C2 R2 T2 4
C1 R3 T1 8
C2 R3 T2 0
我要实现的目标:一个由3组组成的条形图(即每个REASON一组),其中每组由2个堆叠的条形图(即每个CATEGORY的条形图)组成,其中每个条形图均在其顶部显示T1和T2 。
我想我需要类似R:的两组条形图,其中一组堆叠在一起,但是不幸的是,我对R还是很陌生。
类似于这张图片,就我的示例而言:
任何帮助表示赞赏。
我将向您介绍ggplot
R中的软件包,这可能会为您提供更好的可视化问题的方式。即使它不能解决您当前的问题,ggplot
也最容易在R中启动可视化。
首先是代码:
library
将加载ggplot
并scales
打包
library(ggplot2)
library(scales)
生成您的虚拟数据集
df = expand.grid(factor(c("C1","C2","C3","C4","C5","C6","C6","C8")),
factor(c("R1","R2","R3","R4","R5","R6","R7")),
factor(c("T1","T2")))
Category
在x轴上,Value
在y轴上绘制,Time
作为需要的堆叠杆geom_bar()
。ggplot
可以使用代替而不是对条形图本身进行分组facets
,从而产生更清晰的结果。scale_y_continuous()
将您的y轴转换为百分比。
ggplot(data = df, aes(x=Reason, y=Value, fill = Time)) +
geom_bar(stat='identity') +
facet_wrap(~Category) +
scale_y_continuous(labels = percent) +
theme(panel.background = element_rect(fill = "white"))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句