r - 如何使用 color() 而不是 facet_grid() 来“拆分”您的数据,但将其保持在同一个图上
问题描述
当我想用变量“拆分”我的数据时,我无法用 color() 代替 facet_grid()。我不是用回归线生成单个图,而是希望生成一个包含所有回归线的图。
这是我的代码:
ggplot(data, aes(x = Rooms, y = Price)) +
geom_point(size = 1, alpha = 1/100) +
geom_smooth(method = "lm", color = Type) # Single plot with all regression lines
ggplot(data, aes(x = Rooms, y = Price)) +
geom_point(size = 1, alpha = 1/100) +
geom_smooth(method = "lm") + facet_grid(. ~ Type) # Individual plots with regression lines
(第一个图不起作用)这是输出:“grDevices::col2rgb(color, TRUE) 中的错误:无效颜色名称 'Type' 另外:警告消息:1:删除了包含非有限值的 12750 行(stat_smooth ). 2: 删除了包含缺失值 (geom_point) 的 12750 行。”
这是数据的链接: 数据集
解决方案
您需要为 提供美学映射geom_smooth
,而不仅仅是一个参数,这意味着您需要colour
将aes()
. 每当您想让图形元素与数据中的某些内容而不是固定参数相对应时,这就是您需要做的事情。
这是内置iris
数据集的示例。事实上,如果你移动colour
到ggplot
调用,那么它也被继承geom_point
,那么你可以为点和线着色。
library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +
geom_point() +
geom_smooth(aes(colour = Species), method = "lm")
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species)) +
geom_point() +
geom_smooth(method = "lm")
由reprex 包(v0.2.0)于 2018 年 7 月 20 日创建。
推荐阅读
- c# - 与 foreach 循环的字符串比较。预期输出是“Facebook”
- javascript - 如何在 React 前端实现 keep-alive 轮询?
- flutter - 如何在颤动中获取设备字体大小
- node.js - node-v12.16.1.pkg”无法打开,因为Apple无法检查它是否存在恶意软件
- google-chrome - Chrome 中的 WebSocket SSL 问题
- laravel - Laravel 关系
- mongodb - 使 MongoDB 转储到特定的数据库版本
- laravel - Swift_TransportException:预期的响应代码为 250,但使用 Amazon SES 在队列工作人员中间歇性地得到一个空响应
- jquery - 从 .NET Core Razor 页面中的 JQuery Ajax 调用 C# 方法
- amazon-web-services - 允许 Lambda 但阻止所有其他外部 IP 的 AWS 存储桶策略