【问题标题】:Plotting discrete data regarding two color arguments绘制关于两个颜色参数的离散数据
【发布时间】:2017-04-24 15:51:58
【问题描述】:

我做了一个主成分分析,现在我在 R 中绘制结果(绘制 2514 个个体的第一个主成分和第二个主成分,并对关于 6 个超种群的所有这些点进行着色以可视化集群)。 R 默认颜色很好,但我需要一个特别突出的超级群体,所以我想把它涂成黑色。我不在乎其他5个的颜色。

我无法应用我所读到的关于自定义调色板和使用 ggplot 绘图的内容。我试图创建一个新的调色板,但我无法在语法中混合这两种东西。我必须告诉程序 (1) 为每个点着色关于它的超级人口信息,以及 (2) 使用这个新的调色板 mypalette,但在绘图语法中,两个信息都必须在“col”参数中,但我想放两个。这是到目前为止的代码,它没有达到我想要的效果:

Superpopulations<-PC$Superpop
mypalette=c("blue","violetred1","green1","darkorchid1","yellow1","black")

mypal=discrete_scale(aesthetics = Superpulations, scale_name = "Superpopulations", palette = mypalette)

superpopulation<-qplot(newPC2$PC1,newPC2$PC2, col=mypal, main = NULL ,xlab= NULL, ylab=NULL, size=I(2.5))
superpopulation + theme(legend.position="bottom")

我还尝试仅提取 URUS 并使用命令 points() 将它们单独绘制成黑色,覆盖其他点:

points(PCsurus2$PC1, PCsurus2$PC2, col="black")

但我看不出剧情有什么变化。

PC 是一个数据框,其中前两列是主成分值 1 和 2,另一列是 Superpop,带有超级种群的名称标签(如“URU”、“EUR”)。 在这里我留下图表。 我想将 URU 颜色从红色更改为黑色以突出显示该人群

【问题讨论】:

  • 另请注意,points 仅适用于基础绘图,不适用于基于 grid 的图形,例如 ggplot2(它不会执行任何操作)。
  • 哦,我不知道。谢谢你的旁注! :)

标签: r ggplot2 colors


【解决方案1】:

我建议不要使用qplot,它会教你坏习惯,并且在让你了解语法背后的原则方面做得很差。这是ggplot() 版本的样子:

ggplot(newPC2, aes(PC1, PC2, Superpulation)) +            #Copied your misspelling(!)
  geom_point(size = 2.5) +
  scale_color_manual(values = mypal) +
  theme(legend.position="bottom")

【讨论】:

  • 哦,抱歉,我没有注意到我的拼写错误。谢谢!我试过你的方法,但它产生了这个错误:错误:应该使用aes() or aes_()`创建映射。我一定会考虑你关于使用 ggplot 而不是 qplot 的建议,顺便说一句。
  • 抱歉,我换了参数,现在应该可以了!你没有一个可重复的例子,所以我只是取消了袖口。
猜你喜欢
  • 2015-12-26
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
  • 1970-01-01
相关资源
最近更新 更多