我正在尝试制作一个稀土元素蜘蛛图,在y轴上将浓度放在log10中,在x轴上将稀土元素中的每个元素分别放在蜘蛛图中。然后我试着将几个单位的岩石相互比较。下面的google文档链接中添加了我正在寻找的和我正在获得的内容的示例。
因此,对于我添加的代码,我有两个问题: 1.元素在x轴上按字母顺序列出,而不是按照我的CSV 2中的顺序列出。我不知道我在代码中遗漏了什么,无法将每个样本中的点关联在一起来构建一条线。我不知道这是我的代码的问题,还是我的数据在CSV中的排列方式的问题。
我曾见过其他人通过将各个元素视为日期来处理此问题。我曾经尝试过lubridate,但我觉得它并不像我在下面添加的代码那么成功……这说明了一些事情。
ggplot(data=dataMGSREE) +
geom_point(mapping = aes(x = Concentration, y = Element, color=Group), show.legend = FALSE) +
coord_flip() +
scale_x_log10()
Analysis Name Element Concentration
HM030218-2 Haycock Upper La 65.00
HM030218-2 Haycock Upper Ce 127.00
HM030218-2 Haycock Upper Pr 13.46
HM030218-2 Haycock Upper Nd 44.00
HM030218-2 Haycock Upper Sm 6.70
HM030218-2 Haycock Upper Eu 0.75
HM030218-2 Haycock Upper Gd 4.48
HM030218-2 Haycock Upper Tb 0.64
HM030218-2 Haycock Upper Dy 3.40
HM030218-2 Haycock Upper Ho 0.73
1-10 of 14 rows上面列出了与预期结果类似的内容,而实际结果在这里:https://docs.google.com/document/d/1p7QY8Ie_bmav1XApTSy1TCECvteUcxckZXpsy9Ib7Ew/edit?usp=sharing
也请原谅我不知道如何在这里上传截图。
发布于 2019-06-18 08:52:12
一些正在发生的事情
geom_line()添加到你的图中。您还需要添加组美学,以指示要连接的点,假设是aes()中的group = Analysis。每当您在轴上绘制具有离散变量的线条时,这都是必需的。aes()放入原始ggplot()调用中,它将同时传递给geom_point()和geom_line(),这样您就不必在后续层中重新指定它coord_flip我只是从startx和y上运行的内容。您没有在数据中显示名为Group的列,所以我很惊讶您的color = Group居然还能工作……如下所示:
# change factor levels to order they occur
# you could also custom-specify an order, with, e.g., `levels = c("Li", "Ce", "Pr", ...)`
dataMGSREE$Element = factor(dataMGSREE$Element, levels = unique(dataMGSREE$Element))
# plot with changes explained above
ggplot(data = dataMGSREE,
mapping = aes(x = Element, y = Concentration, color = Analysis, group = Analysis)) +
geom_point(show.legend = FALSE) +
geom_line() +
scale_y_log10()发布于 2019-06-18 08:46:18
像Element这样的离散数据的轴排序由因子水平的设置方式决定。看起来这里的因子级别应该与它们在数据中的顺序相同,所以您可以这样做:
dataMGSREE$Element = factor(dataMGSREE$Element, levels = dataMGSREE$Element)
ggplot(data=dataMGSREE) +
# I set color = Analysis here because the example data didn't
# contain a Group column, replace as appropriate
geom_point(mapping = aes(x = Concentration, y = Element, color=Analysis),
show.legend = FALSE) +
coord_flip() +
scale_x_log10()https://stackoverflow.com/questions/56640333
复制相似问题