我有一个数据框,如下所示:我试图将count和col.count绘制为ggplot图中的两行。我似乎无法做到这一点。感谢任何帮助。
month count col.count
=============================
16-05-May 1 1154688
16-06-Jun 1 1092764
16-07-Jul 2 1060445
16-08-Aug 19 1092050
16-09-Sep 173 1041299
16-10-Oct 1469 1261100
16-11-Nov 1819 1356139
16-12-Dec 1263 1272486
17-01-Jan 748 1170097
17-02-Feb 684 1016672
谢谢。
答案 0 :(得分:2)
两列中的数字范围均为偏离幅度,因此可能需要使用y轴上的对数刻度进行绘图。以下是如何使用ggplot在R中的同一图表上绘制两个变量。
# first parse date string into Date object
df$date <- as.Date(df$month, "%y-%d-%b") # 16-05-May
library(ggplot2)
ggplot(df, aes(date)) + scale_y_log10() +
geom_line(aes(y = count, colour = "red")) +
geom_line(aes(y = col.count, colour = "blue"))
如果您按照描述标准化 col.count 变量,那么您可以将它们绘制在一起,而不会使另一个变得完全平坦。
library(scales)
ggplot(df, aes(date)) + scale_y_continuous(labels = comma) +
geom_line(aes(y = count, colour = "red")) +
geom_line(aes(y = col.count/2000, colour = "blue"))
将两个图形显示为彼此堆叠的时间序列是另一种显示两个在y轴上具有非常不同范围的变量的方法。
require(gridExtra)
p1 <- ggplot(df, aes(date,count)) + geom_line(colour = "red")
p2 <- ggplot(df, aes(date,col.count)) + geom_line(colour = "blue")
grid.arrange(p1, p2, nrow=2)