【发布时间】:2018-10-28 00:21:44
【问题描述】:
假设我有以下数据
A <- c(4,4,4,4,4)
B <- c(1,2,3,4,4)
C <- c(1,2,4,4,4)
D <- c(3,2,4,1,4)
E <- c(4,4,4,4,5)
data <- data.frame(A,B,C,D,E)
data<- t(data)
colnames(data) = c("num1","freq1","freq2","freq3","totfreq")
> data
num1 freq1 freq2 freq3 totfreq
A 4 4 4 4 4
B 1 2 3 4 4
C 1 2 4 4 4
D 3 2 4 1 4
E 4 4 4 4 5
我正在尝试绘制分组条形图。两者上的 x 轴应该是我的变量 A:E,y 是每个字母的 freq1、freq2、freq3 的值。我还需要保持按totfreq 中的值绘制变量A:E 的能力。
我知道我需要转换为长格式,但我在设置数据时遇到了问题。不知何故,我需要A、B、C、D、E 需要堆叠成一列,另一列堆叠成freq1、freq2、freq3、totfreq 和然后是最后一列的值。任何建议如何做到这一点?
我希望最好在 plotly 中绘图,但 ggplot 也可以工作
【问题讨论】:
-
所以您希望条形的高度是 freq1、freq2、freq3 和 totfreq 的总和? “那么最后一列的值”是指哪些值?
-
另外,这似乎是一个关于如何在准备中重塑数据的问题,而不是关于如何绘制它的问题。我建议删除
ggplot2和plotly标签,因为这两个标签都不需要回答这个问题。相反,一旦数据成形,他们会考虑构建绘图的可能后续问题 -
条的高度应该是频率变量列中的每个值。所以 A 将有 3 个条形表示 freq1、freq2、freq3 中的值。但是我需要设置它,所以我可以选择只获取 totfreq,所以在不同的图表中,我可以绘制 A 只有 1 个 bar 的位置,以获取 totfreq 中的值