我有一个数据集(A.plot),由于数据是或多或少的,它看起来像是用熔体熔化了。第1列称为Prov (9个样本名称每个重复10次),第2列称为step,称为Steg (1:10复制10次),第3:30列是不同的金属。样本和步骤本身是不唯一的,但是如果连接在一起,就会得到真正的唯一示例名。我已经创建了一个包含所有金属名称的向量,名为Element。
str(A.plot)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 99 obs. of 31 variables:
$ Prov: chr "A-HCl" "A-HCl" "A-HCl" "A-HCl" ...
$ Steg: num 0 1 2 3 4 5 6 7 8 9 ...
$ Li : num 1.51 4.22 4.76 5.3 8.89 ...
$ Be : num 0.204 0.559 0.802 0.841 0.295 ...
$ Na : num 6097217 5991299 5819005 5921011 6042524 ...
$ Mg : num 405 22524 333229 553882 879715 ...
$ Al : num 446 459 525 508 503 ...
$ K : num 549282 505039 500718 515440 535693 ...只需使用以下代码绘制一种金属:
A.test.plot <- A.plot[ , c( 1:2, 12) ]
colnames(A.test.plot) <- c("Prov", "Steg", "value")
library(ggplot2)
library(tidyr)
ggplot(A.test.plot, aes(x=Steg, y=value, colour=Prov, group=Prov)) +
geom_line()我可以得到我想要的每一种金属的显示方式的情节:

问题是,我希望所有的金属都在一个facet_wrap中。我以前使用facet_wrap ()来处理几个金属,但是每个金属(每个面板)只有一组数据/值。现在我有了几组(9)值要输入到每个面板中,看来我给gather()的方式是错误的。
我试过:
A.test.plot1 <- A.plot
colnames(A.test.plot1) <- c("Prov", "Steg", Element)
gather(A.test.plot1, key = Element, value, -"Steg", -"Prov")
ggplot(gather(A.test.plot1, key=Element, value="value", -"Steg", -"Prov"), aes(x=Steg, y=Element, colour=Prov, group=Prov) ) +
geom_point() +
facet_wrap(~ Element, scales = 'free') 但它似乎“聚集了很多”:

我还尝试过将Steg/Element/Prov从集合函数和ggplot中移除的几种组合,但这只会使我离目标更远。
我错过了什么/做错了什么?
我已经看过this question了,但是数据集已经从链接中消失了,我没有足够的技术来为我的数据复制解决方案。我也看过another question,但我认为lubridate包在这里不适用。
编辑:示例数据应请求:YggTSTON3swP0tSehurLQqtFrt8/edit?usp=sharing注意,它是巨大的,因为许多小数。
发布于 2018-10-19 07:46:46
这是为我工作的:
library(ggplot2)
library(tidyr)
gather(A.test.plot1, key=Element, value="value", -"Steg", -"Prov") %>%
ggplot(aes(x=Steg, y=as.numeric(value), colour=Prov, group=Prov) ) +
geom_line() +
facet_wrap(~ Element, scales = 'free')

问题是对aes()的调用中的规范aes()。
https://stackoverflow.com/questions/52873825
复制相似问题