首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在构建这个图时,我错过了什么?

在构建这个图时,我错过了什么?
EN

Stack Overflow用户
提问于 2019-06-18 08:27:59
回答 2查看 113关注 0票数 0

我正在尝试制作一个稀土元素蜘蛛图,在y轴上将浓度放在log10中,在x轴上将稀土元素中的每个元素分别放在蜘蛛图中。然后我试着将几个单位的岩石相互比较。下面的google文档链接中添加了我正在寻找的和我正在获得的内容的示例。

因此,对于我添加的代码,我有两个问题: 1.元素在x轴上按字母顺序列出,而不是按照我的CSV 2中的顺序列出。我不知道我在代码中遗漏了什么,无法将每个样本中的点关联在一起来构建一条线。我不知道这是我的代码的问题,还是我的数据在CSV中的排列方式的问题。

我曾见过其他人通过将各个元素视为日期来处理此问题。我曾经尝试过lubridate,但我觉得它并不像我在下面添加的代码那么成功……这说明了一些事情。

代码语言:javascript
复制
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

也请原谅我不知道如何在这里上传截图。

EN

回答 2

Stack Overflow用户

发布于 2019-06-18 08:52:12

一些正在发生的事情

  • (a)如果你想要线条,你需要将geom_line()添加到你的图中。您还需要添加组美学,以指示要连接的点,假设是aes()中的group = Analysis。每当您在轴上绘制具有离散变量的线条时,这都是必需的。
  • (B)请参阅this FAQ获取元素的自定义顺序。
  • (C)如果您需要点和线,请将aes()放入原始ggplot()调用中,它将同时传递给geom_point()geom_line(),这样您就不必在后续层中重新指定它
  • (D)我认为没有理由在此处使用coord_flip我只是从start
  • (e)中映射出您想要在xy上运行的内容。您没有在数据中显示名为Group的列,所以我很惊讶您的color = Group居然还能工作……

如下所示:

代码语言:javascript
复制
# 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()
票数 1
EN

Stack Overflow用户

发布于 2019-06-18 08:46:18

Element这样的离散数据的轴排序由因子水平的设置方式决定。看起来这里的因子级别应该与它们在数据中的顺序相同,所以您可以这样做:

代码语言:javascript
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56640333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档