r - 具有不同颜色点的散点图
问题描述
试图用十二个点制作一个简单的散点图。这些点分为三组,每组四个,与三种土地利用类型的四个地点相关。我想为与他们的土地利用类型(住宅、工业和绿地)相关的点着色。散点图显示了香农 H 和辛普森指数(生物多样性丰富度估计,使用素食主义者)之间的关系。我可以制作情节,但不能为点着色。
请看下面的代码。我已经尝试过这种变化。我也试过散点图函数library(cars)
。那行得通,但是我无法自定义点的形状/大小/颜色,只能访问默认值。
richness.fig <- plot(H, simp, xlab = "Shannon's H", ylab = "Simpson's", frame = FALSE)
points(richness.fig, "sites", pch = 19, col = "green", select = richcompare$use == "green")
points(richness.fig, "sites", pch = 19, col = "blue", select = richcompare$use == "indust")
points(richness.fig, "sites", pch = 19, col = "red", select = richcompare$use == "res")
我确实得到了一个散点图,但是是黑白的。错误消息如下所示。
Error in xy.coords(x, y) : 'x' and 'y' lengths differ
解决方案
您可以在一次调用 plot() 中完成所有这些操作。只需将一个变量传递给描述您着色的组的“col”参数。
richness.fig <- plot(H, simp, xlab = "Shannon's H", ylab = "Simpson's", frame = FALSE, col=richcompare$use)
如果要使用 points() 函数,则前两个参数通常指定要绘制的 X 和 Y 点。这就是为什么您会收到关于 x 和 y 长度不同的错误。因此,另一种方法是仍然这样做,但将 H 和 simp 作为前两个参数传递。
更新:自定义颜色可以按如下方式完成。
myCols <- c("green", "red", "blue")
richness.fig <- plot(H, simp, xlab = "Shannon's H", ylab = "Simpson's", frame = FALSE, col=myCols[richcompare$use])
向 myCols 添加尽可能多的颜色,因为您在 richcompare$use 中具有因子级别
推荐阅读
- android - 手机一段时间未使用时未触发 SMS BroadcastReceiver?
- web-scraping - BeautifulSoup 查找特定字符串
- android - 不允许用户拒绝应用权限
- javascript - 滑块不会自动加载
- android - 即使应用程序关闭,BroadcastReceiver 也能正常工作
- c# - Microsoft Word:Normal.dotm,无法打开现有文件:在 c# 中使用 Microsoft.Office.Interop.Word
- ruby-on-rails - 为什么当我尝试使用用户输入创建一个 Datetime 对象作为参数时说无效日期
- c# - Unity TCP/IP 服务器只接受本地连接。同一台 PC 上的相同代码而不是 Unity 可以正常工作
- ios - NSDictionary 创建错误,某些键没有引号
- r - 在主标题上方放置图例