【发布时间】:2020-02-12 04:50:54
【问题描述】:
我正在尝试创建一个显示同一列 (y) 中不同值的时间演变 (x) 的图,因此需要创建一个具有不同线条的图。 我能够为 y 的每个值创建单独的图,所以我的问题似乎特别是关于添加显示不同值的多条线(看起来不同的长度)。
这是我从数据集“test”中使用的“Date”和“Journal”列的输入:
> structure(list(Date = structure(c(9132, 9136, 9136, 9141, 9141,
9142), class = "Date", tzone = "Europe/Paris"), Journal = c("Libération",
"Libération", "Libération", "Libération", "Le Monde", "La Tribune (France)"
)), row.names = c(NA, -6L), .internal.selfref = <pointer: 0x000002146c471ef0>, class = c("data.table",
"data.frame"))
我使用以下代码成功创建了一个条形图,它根据“日期”列显示“期刊”列的演变。
dateplot <- ggplot(cleantest) + aes(x = format(Date, "%Y%")) + geom_bar()
我还设法为每个 Y 值创建了单线图,代码如下:
valueplot <- ggplot(subset(test, Journal %in% "value")) + aes(x = format(Date, "%Y")) + geom_line(stat = "count", na.rm = TRUE, group = 1)
因此,我键入以下代码以获取例如同一图中的两条线,它们每条都返回不同的错误:
jourplot <- ggplot(test, aes(x = format(Date, "%Y"))) + geom_line(aes(y = subset(test, Journal %in% "Libération"), colour = "blue")) + geom_line(aes(y = subset(test, Journal %in% "Le Figaro"), colour =
"red"))
错误是:
> Don't know how to automatically pick scale for object of type data.table/data.frame. Defaulting to continuous. Erreur : Aesthetics must be either length 1 or the same as the data (17307): y
所以我尝试了这个:
jourplot <- ggplot(test, aes(x = format(Date, "%Y")) + geom_line(aes(y = subset(test, Journal %in% "Libération"), colour = "blue"), stat = "count", na.rm = TRUE, group = 1) + geom_line(aes(y = subset(test, Journal %in% "Le Figaro"), colour = "red"), stat = "count", na.rm = TRUE, group = 1"))
但是这个甚至没有创建“jourplot”对象。 我的代码和/或我的数据显然有问题,但作为一个新手,我真的看不到它。它似乎与长度有关,但我该如何克服呢?或者这是关于使 ggplot 难以处理的列的类?
有人明白发生了什么吗?
编辑:我从提示符中删除了“+”符号
【问题讨论】:
-
您能否修改一下哪些
+是您实际输入的符号,哪些是命令提示符?删除那些是命令属性的。