我是 R 和 ggplot2 的新手。我有一个包含饮料消费数据的 csv 文件。第一列是年份,然后接下来的 9 列是饮料类型,如咖啡、茶、苏打水等,其值为该行的年份值的消费金额。数据涵盖了 41 年的时间。我一直在研究这个并尝试了很多事情。我可以使用 ggplot 轻松为任何一种饮料创建点图。
但是,我想为每个图在 x 轴上创建带有年份的水平堆叠点图。所以,会有一个情节用于咖啡,然后在它的正下方,一个用于茶等。我想我想使用构面。我还在想我想要重组我的数据,使其有 3 列:一列用于年份,一列用于“类别”(即咖啡、茶、苏打水等),最后一列用于价值。我的想法是,一旦我以这种形式获得数据,那么使用刻面应该是直截了当的。
问题是,我似乎无法弄清楚如何以那种形式获取我的数据。以下是前几行数据的外观:
Year Whole Milk Other Milk Total Milk Tea Coffee Diet Soda Regular Soda Total Soda Juice
1970 25.5 5.8 31.3 6.8 33.4 2.1 22.2 24.3 5.5
1971 25 6.3 31.3 7.2 32.2 2.2 23.3 25.5 5.8
1972 24.1 6.9 31 7.3 33.6 2.3 23.9 26.2 6
有人能帮我吗?
dput
的数据是:
structure(list(Year = 1970:1972, `Whole Milk` = c(25.5, 25, 24.1
), `Other Milk` = c(5.8, 6.3, 6.9), `Total Milk` = c(31.3, 31.3,
31), Tea = c(6.8, 7.2, 7.3), Coffee = c(33.4, 32.2, 33.6), `Diet Soda` = c(2.1,
2.2, 2.3), `Regular Soda` = c(22.2, 23.3, 23.9), `Total Soda` = c(24.3,
25.5, 26.2), Juice = c(5.5, 5.8, 6)), .Names = c("Year", "Whole Milk",
"Other Milk", "Total Milk", "Tea", "Coffee", "Diet Soda", "Regular Soda",
"Total Soda", "Juice"), class = "data.frame", row.names = c(NA,
-3L))