【问题标题】:adding color pallet to base R plot function将颜色托盘添加到基本 R 绘图功能
【发布时间】:2020-02-02 05:31:20
【问题描述】:

问题:我一直在尝试使用托盘 Wes_Anderson 给我一种物种颜色...所以第一行就是这样做的,但由于它使用的是基础 R 颜色,我无法控制它们。我正在使用 R 上的基本 Iris 数据集。

graph = plot(data$Petal.Width, data$Petal.Length, pch = 16, col =( data$Species))

我已经尝试使用这个来添加它们..

graph + scale_fill_manual (values = wes_palette("Zissou1", n = 3, type = "discrete"))

我想添加它们的原因是因为我试图指定我为下面编码的图例所做的事情。我正在努力确保该物种与我的 wes_anderson 托盘相匹配... 我不明白为什么在使用 wes_anderson 托盘时无法从 col = data$Species 列中指定颜色

legend("topleft", inset = 0.05,
legend=paste(rep(c("setosa","versicolor","virginica"))),
       col = wes_palette("Zissou1", 3, type = c("discrete")),
       pch = 16,
       #this is for a box around the legend
       bty="black")

【问题讨论】:

    标签: r plot


    【解决方案1】:

    您可以将调色板指定为物种因子标签,然后将其转换为字符串。

    library(wesanderson)
    
    pal <-  wes_palette("Zissou1", length(levels(iris$Species)))
    
    with(iris,
         plot(
           Petal.Width,
           Petal.Length,
           pch = 16,
           col = as.character(factor(Species, labels = pal))
         ))
    
    legend("topleft", inset = 0.05,
           legend=levels(iris$Species),
           col =  pal,
           pch = 16,
           #this is for a box around the legend
           bty="black")
    

    顺便说一句,您似乎试图混合使用来自ggplot2 的基本绘图和函数,但这是行不通的。

    【讨论】:

    • 您好,感谢您的回答。你能澄清一下哪些功能是 ggplot2 特有的吗?我以为出了什么问题,但我不确定是什么。
    • 我有一个后续问题。所写的图例会转化为分配给每个物种的颜色吗?
    • 在这种情况下是的,但这只是因为图例函数中提供的物种向量恰好是按字母顺序排列的。我进行了编辑以展示如何安全地控制它。
    猜你喜欢
    • 2022-01-14
    • 2012-12-27
    • 2012-12-31
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多