如何确保两个图都按照代码进行颜色编码?

时间:2019-05-21 08:25:44

标签: r colors

我正在尝试根据在植被中测量Cu水平时采样的物种对R中的地块进行颜色编码。

我编写了应该提供正确颜色的代码,当将其添加到以“ plot”开头的代码行中时,颜色代码有效,但是,当我尝试将其添加到“点”中时,颜色与之前的绘图线相同,即未指示正确的种类。

在下图中,您可以看到一半的点是黑色的-但是,当我在代码中将“ col = color”添加到“ points”时,黑色的点变成与已经存在的点相同的颜色彩色的,这是不正确的。 有谁知道我如何确保代码可同时用于原始图和添加点?

package main

import (
    "fmt"
    "encoding/json"
)

type parent struct {
    Attr    int `json:"attr"`
}

type child struct {
    parent
    Attr    int
}

func main() {
    var c child
    json.Unmarshal([]byte(`{"attr": 1}`), &c)
    fmt.Println(c.Attr)
    fmt.Println(c.parent.Attr)
}

我的绘图示例没有正确的颜色

enter image description here

1 个答案:

答案 0 :(得分:0)

由于我不知道您的数据,我不能确定确切的问题是什么。

但是我建议尝试以下方法:

cols <- c("blue", "red", "darkmagenta", "gold", "violetred1",  "lawngreen", "black")

All_data_with_H$Species <- as.factor(All_data_with_H$Species)

plot(Distance_m[Location=="T1"], Cu_V[Location=="T1"], xlab = "Distance 
   (m) along transects", ylab = "Cu (µg/g) in vegetation", ylim = c(0,30), 
   col = cols[All_data_with_H$Species[Location=="T1"]], 
   pch = 20, frame.plot=FALSE, box(bty="l"))

   points(Distance_m[Location=="T2"], Cu_V[Location=="T2"], 
   col = cols[All_data_with_H$Species[Location=="T2"]], pch = 20)

我希望对您有用。

“把戏”是这样的:

facs <- as.factor(c("A", "B", "B", "C", "A", "B", "C", "C"))

cols <- c("red", "blue", "green")

cols[facs]
[1] "red"   "blue"  "blue"  "green" "red"   "blue"  "green" "green"

因此,基本上,您将根据要在colorplot中显示的子集动态地创建points向量。