通过对数据帧的列进行分组来绘制图形

时间:2015-07-25 10:32:47

标签: r graph

我想拥有以下数据框

Value Phase
22    1
23    1
40    1
19    2
17    2
16    2
12    3
13    3
14    3
9     4
7     4
6     4

我想看看特定阶段的value总和如何在不同的phases上发生变化。 phase列的范围可以是1到5.我想从第1阶段到第2阶段到第3阶段,依此类推,该阶段的值总和是减少还是增加。我想使用基础绘图系统。如何绘制图表,以便明确每个phase中的更改。

1 个答案:

答案 0 :(得分:1)

以下是Value中每个值的Phase总和的行+散点图。首先,您需要按Phase汇总数据。我正在提供基础R解决方案(如您所要求的)和ggplot解决方案。

df <- read.table(text = "Value Phase
                         22    1
                         23    1
                         40    1
                         19    2
                         17    2
                         16    2
                         12    3
                         13    3
                         14    3
                         9     4
                         7     4
                         6     4", header = TRUE)

sums <- aggregate(Value ~ Phase, df, sum, na.rm = TRUE)
png("sums.png", height = 540, width = 540)
plot(sums$Phase, sums$Value, xlab = "Phase", ylab = "Sum of Value")
lines(sums$Phase, sums$Value, type = "l")
dev.off()

# ggplot method
require(ggplot2)
ggplot(sums, aes(x = Phase, y = Value)) + geom_point() + geom_line()
ggsave("sums-ggplot.png")

enter image description here

enter image description here