ggplot 未绘制正确的颜色[重复]

2024-01-10

gb <- read.csv('results-gradient-boosting.csv')
p <- ggplot(gb) + geom_point(aes(x = pred, y = y),alpha = 0.4, fill = 'darkgrey', size = 2) + 
geom_line(aes(x = pred, y = pred,color = 'darkgrey'),size = 0.6) + 
geom_line(aes(x = pred, y = pred + 3,color = I("darkgrey")), linetype = 'dashed',size = 0.6) + 
geom_line(aes(x = pred, y = pred -3,color = 'darkgrey'),linetype = 'dashed',size = 0.6)

My code is above. I have no idea why when I put color inside aes, the color turns out to be red. But if I put it outside of aes, it is correct. Thanks for your help! enter image description here


当你把color="darkgrey"外部aes, ggplot 从字面上看意味着该线应该是彩色的"darkgrey"。但是当你把color="darkgrey" inside aes,ggplot 认为这意味着您要将颜色映射到变量。在这种情况下,该变量只有一个值:“darkgrey”。但不是这个颜色"darkgrey"。它只是一个字符串。你可以随意称呼它。 ggplot 选择的颜色将基于默认调色板。当您希望为变量的不同级别使用不同的颜色时,将颜色映射到变量。

例如,看看下面的示例中会发生什么。颜色是从 ggplot 的默认调色板中选择的,并且完全独立于我们使用的名称colour在每次通话中geom_line。当您具有具有三种不同独特值的任何色彩审美时,您将获得相同的三种颜色:

library(ggplot2)
theme_set(theme_classic())

ggplot(mtcars) +
  geom_line(aes(mpg, wt, colour="green")) +
  geom_line(aes(mpg, wt - 1, colour="blue")) +
  geom_line(aes(mpg, wt + 1, colour="star trek"))

但现在我们把颜色放在外面aes所以它们是按字面意思理解的,我们注释掉第三行,因为如果我们不使用有效的颜色,就会导致错误。

ggplot(mtcars) +
  geom_line(aes(mpg, wt), colour="green") +
  geom_line(aes(mpg, wt - 1), colour="blue") #+
  #geom_line(aes(mpg, wt + 1), colour="star trek")

请注意,如果我们将颜色映射到实际的列mtcars(具有三个唯一级别的),我们得到与第一个示例相同的三种颜色,但现在它们映射到数据的实际特征:

ggplot(mtcars) +
  geom_line(aes(mpg, wt, colour=factor(cyl)))

最后,如果我们想将这些映射的颜色设置为不同的值该怎么办:

ggplot(mtcars) +
  geom_line(aes(mpg, wt, colour=factor(cyl))) +
  scale_colour_manual(values=c("purple", hcl(150,100,80), rgb(0.9,0.5,0.3)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ggplot 未绘制正确的颜色[重复] 的相关文章

  • 使用 kableExtra 增加行/行间距

    有没有办法在 r markdown 或 bookdown 中使用 kableExtra 增加 pdf 输出的行间距 library knitr library kableExtra kable head iris 5 caption Iri
  • R中的预测和预测函数之间的区别

    两者之间有什么区别吗predict and forecast R 中的函数 如果是 在哪些具体情况下应该使用它们 Intro predict 适用于多种 R 对象 模型 基础库的一部分 forecast 对于时间序列 预测包的一部分 参见示
  • 使用 != 子集 data.table 也排除 NA

    我有一个 data table 其中有一列NAs 我想删除该列具有特定值的行 恰好是 然而 我的第一次尝试导致我失去了行NA还有 gt a c 1 NA gt x lt data table a x a 1 1 2 3 NA gt y lt
  • 在 R 中根据时间序列数据制作 3D 曲面

    我有一个大型数据集 我想从中制作 3D 表面 我希望 x 轴为日期 y 轴为时间 24 小时 z 轴 高度 为我的值 我是 R 初学者 所以越简单越好 http www quantmod com examples chartSeries3d
  • 难以理解 R 中双括号和单括号子集之间的区别[重复]

    这个问题在这里已经有答案了 我很难理解双括号子集和单括号子集之间的区别 我在开源编程方面相当陌生 我很难理解 R 中的 help 函数 因为考虑到我目前对 R 的理解 其中的一些信息对我来说太技术性了 我尝试过谷歌搜索差异 虽然它给了我一个
  • 使用shinyjs通过javascript在闪亮的应用程序中操作现有的Leaflet地图

    我有一个闪亮的应用程序 其中包含现有的传单地图 我希望能够在渲染后使用自定义 javascript 通过shinyjs包裹 一个最小的例子如下 app R packages library dplyr library leaflet lib
  • 是否有 R 函数可以将这些数据从长形重塑为宽形?

    数据现在看起来如何 Coach ID Student score 1 A 8 1 B 3 2 A 5 2 B 4 2 C 7 看起来像这样 Coach ID Student score student 2 score 2 student 3
  • dplyr::mutate 添加多个值

    网上有几个与此相关的问题dplyr Github 存储库 https github com hadley dplyr已经 并且至少有一个相关的问题 但没有一个问题完全涵盖了我的问题 我认为 在 dplyr mutate 调用中添加多列 ht
  • 如何计算满足条件的行数

    假设我有以下数据框 Data1 X1 X2 1 15 1 2 3 1 3 7 0 4 11 1 5 1 0 6 9 0 7 18 0 8 6 1 9 3 1 我想知道如何找到观察的总数X1大于 9 并且X2等于1 我想我需要使用sum 但我
  • 列表列表中出现的频率

    我有一个列表列表 其中每个列表都已排序 我想调查的是某个元素在特定位置出现了多少次 例如 pnc 曾两次出现在第二位 一次出现在第三位 我的数据结构如下 dput degree l list c schwab 0 pnc 0 0344827
  • 为什么我收到保存错误、软盘错误的消息?

    我最近更新了 R 和 R studio 当我尝试保存文件时 收到一条错误消息 保存 文件名 时出错 驱动器中的软盘错误 将 2 卷序列号 3 插入驱动器 1 这是第一次看到这个错误信息 不知道该怎么办 我也无法 另存为 感谢您的帮助 尝试使
  • 将 dplyr 中的starts_with与部分列名称的向量一起使用

    我想使用 dplyr 选择与字符串向量匹配的某些列 one lt seq 1 10 two lt rnorm 10 three lt runif 10 1 2 four lt 10 1 df lt data frame one two th
  • 在 r 中使用 SSasymp

    我想我不知道如何在 r 中使用 SSasymp 函数 我想为我的项目创建一个渐近函数 我试过这个 c lt seq 0 200 0 5 d lt SSasymp c 500 0 log 50 plot c d type l log 50 应
  • 使用 data() 的 R 包命名空间问题 -- 找不到数据集

    我在尝试在我自己的包中导入包 即 robfilter 时遇到了问题 我尝试使用它的方法之一 adore filter 在这一行失败 data critvals 出现错误 未找到数据集 critvals 如果我通过 require robfi
  • 删除ggplot2 geom_bar中没有数据的日期列[重复]

    这个问题在这里已经有答案了 我想隐藏 ggplot2 中没有数据的列 这是使用 nycflights13 库的可重现示例 library nycflights13 library dplyr library ggplot2 small da
  • 如何合并具有相同列名的数据框

    我有一个数据框 如下所示 structure list Variables structure list ADA ADA LEAD LEAD BIG4 BIG4 LOGMKT LOGMKT LEV LEV ROA ROA ROAL ROAL
  • 在前两个冒号上分割字符串

    我想在前两个冒号上拆分一列字符串 但不在任何后续冒号上拆分 my data lt read table text my string some data 123 34 56 78 100 87 65 43 21 200 a4 b6 c888
  • R 比较所有列对的每个值[重复]

    这个问题在这里已经有答案了 我有一个 18x18 的数据框 我想将所有可能的列对相互比较 以便对于每对两列 18 行中的值相互比较 由于我的数据太大 无法放在这里 我写了一个小例子来说明到目前为止我所想到的 gt a lt c 1 18 g
  • 在 R 的 stargazer 表中设置注释格式

    我在用stargazer包来生成 回归输出 表 一切都在奇迹般地进行 直到我开始编辑笔记 First 换行很难 但是 Bryansuggests https stackoverflow com questions 21720264 star
  • 有条件地将字符串转换为特定数值

    我确信对此有一个简单的答案 但我已经扫描了堆栈溢出 但无法找到解决方案 似乎 sapply 和 ifelse 函数的组合可能可以完成这项工作 但我不确定 所以我有一个包含字符的数据框 除了一列是数值 Create dataframe whi

随机推荐