R:ggplot更好的渐变颜色

2023-11-24

I am using ggplot to plot Proportional Stacked Bar plot. And the Plot I am getting is something like this: enter image description here

这是我正在使用的自写函数:

df <- data.frame(id=letters[1:3],val0=1:3,val1=4:6,val2=7:9, val3=2:4, val4=1:3, val5=4:6, val6=10:12, val7=12:14)

PropBarPlot<-function(df, mytitle=""){
   melteddf<-melt(df, id=names(df)[1], na.rm=T)
   ggplot(melteddf, aes_string(x=names(df)[1], y="value", fill="variable")) + 
     geom_bar(position="fill") + 
     theme(axis.text.x = element_text(angle=90, vjust=1)) + 
     labs(title=mytitle)
}

print(PropBarPlot(df))

Here val4 and val5差别不大。

但由于颜色的原因,其中一些无法区分。有人可以告诉我如何选择更好的颜色以便它们可以区分吗?

Thanks.


怎么样使用scale_fill_brewer它利用了调色板ColorBrewer网站,由包实现RColorBrewer?

ggplot(diamonds, aes(clarity, fill=cut) ) +
geom_bar( ) +
scale_fill_brewer( type = "div" , palette = "RdBu" )

enter image description here

有许多不同的不同调色板可供您选择。

require(RColorBrewer)
?brewer.pal

如果您需要更多颜色,可以使用colorRampPalette在某些颜色之间进行插值的功能(我会使用brewer.pal调色板)。你可以这样做:

# Create a function to interpolate between some colours
mypal <- colorRampPalette( brewer.pal( 6 , "RdBu" ) )
# Run function asking for 19 colours
mypal(19)
 [1] "#B2182B" "#C2373A" "#D35749" "#E47658" "#F0936D" "#F4A989" "#F8BFA5"
 [8] "#FCD6C1" "#F3DDD0" "#E7E0DB" "#DAE2E6" "#CBE1EE" "#ADD1E5" "#90C0DB"
 [15] "#72AFD2" "#5B9DC9" "#478BBF" "#3478B5" "#2166AC"

在您需要 8 种颜色的示例中,您可以像这样使用它scale_fill_manual():

PropBarPlot<-function(df, mytitle=""){
   melteddf<-melt(df, id=names(df)[1], na.rm=T)
   ggplot(melteddf, aes_string(x=names(df)[1], y="value", fill="variable")) + 
     geom_bar(position="fill") + 
     theme(axis.text.x = element_text(angle=90, vjust=1)) + 
     labs(title=mytitle)+
    scale_fill_manual( values = mypal(8) )
}

print(PropBarPlot(df))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R:ggplot更好的渐变颜色 的相关文章

  • R Markdown / Bookdown 中的水平规则导致错误

    突然 我在 Markdown Bookdown 中编织为 PDF 时遇到错误 我的系统没有任何变化 该错误是由 水平规则 引起的 即 Markdown 中的任意位置 或 尽管两侧都有行空格 我提供了一个简单的违规示例 它不会合并成 PDF
  • 在ggplot2中添加边框或背景以缩放图例guide_colorbar

    我在 ggplot 图中有一个从白色到红色的颜色条 并且白色边框在白色背景上不太明显 有没有办法对图例中的刻度线进行不同的着色或在渐变比例周围添加边框 这是一个最小的例子 df lt data frame x lt rnorm 10 y l
  • 使用 RSQLite 在 R 中加载 SQLite 表

    我有这个函数用来加载 SQLite 表 sqLiteConnect lt function database table library DBI library RSQLite con lt dbConnect SQLite dbname
  • 如何选择独特点

    我是一名 R 程序员新手 我有以下一系列观点 df lt data frame x c 1 2 3 4 y c 6 3 7 5 df lt df gt mutate k 1 df lt df gt full join df by k df
  • 按行重塑矩阵

    我有一个大小为 18000 x 54 的矩阵 我想将其重塑为大小为 54000 x 18 的矩阵 其中初始矩阵的每一行都变成一个有 3 行的矩阵 让我们举个例子 我有一个矩阵如下 a matrix 1 18 nrow 2 ncol 9 by
  • Pandas read_sql 读取时更改大量 ID

    我将 Oracle 数据库转移到 SQL Server 一切似乎都很顺利 各种 ID 列都是很大的数字 因此我不得不使用 Decimal 因为它们对于 BigInt 来说太大了 我现在尝试使用 pandas read sql 使用 pyod
  • rpy2 在从 R 到 Python 的数据帧中处理 NA/缺失值时出现问题

    我在使用rpy2包进行转换时遇到问题dataframe将 R 中的内容保存到 Python 中 import os os environ R HOME Library Frameworks R framework Resources imp
  • rvest - 在 1 个标签中抓取 2 个类

    我是新来的 如何提取标签中具有 2 个类名或仅 1 个类名的元素 这是我的代码和问题 doc lt paste span class a1 b1 text1 span span class b1 text2 span library rve
  • 添加带有错误的弹出窗口,警告闪亮

    有什么办法可以添加一个popup 可关闭的窗口 其中包含警告或其他消息Shiny 我用来构建 Web 应用程序的 R 包 我已经寻找了一段时间但没有任何结果 虽然我不认为有任何本地可用的东西shiny 你可以尝试添加jQueryUI到您的应
  • RStudio 在临时目录中从 Rmarkdown 创建 PDF 文件

    我使用 RStudio 和 Rmarkdown 来创建报告 由于某种原因 使用 Knit 按钮会导致它仅在某个临时目录中创建 从命令输出来看 似乎 pandoc 本身被指示这样做 我觉得这很奇怪 usr lib rstudio bin pa
  • 将 data.frame 的列中的值替换为另一个 data.frame 中的值

    我的情况是 我有一个数据框 其中有一列填充了整数 1 到 6 我想用更具描述性的标签替换这些整数 这些标签在另一个充当 键 的数据框中提供 V1 V2 1 1 LABEL1 2 2 LABEL2 3 3 LABEL3 4 4 LABEL4
  • Shiny 中的模态对话框:可以调整宽度但不能调整高度

    在我的 Shiny 应用程序中 我有几个来自闪亮BS 包的模式窗口 我可以像这样调整这些模式窗口的宽度 tags head tags style HTML modal lg width 1200px abs 1 background col
  • 如何将整个列表分配给 pandas 数据帧的每一行

    我有一个数据框和一个列表 df pd DataFrame A 1 2 3 B 4 5 6 mylist 10 20 30 40 50 我希望有一个列表作为数据帧的每一行中的元素 如果我喜欢的话here https stackoverflow
  • R:错误消息---包错误:“functionName”未从当前命名空间解析

    我正在使用一个一直运行到 R3 0 的软件包 问题如上所述 当我们调用在 R 2 15 2 中工作的函数时 从 R 3 0 开始我们得到一个错误 Error in C solarspectrum3 as double lon as doub
  • 来自 data.frame 每一列的随机样本

    我想从 a 的每一行中抽取随机样本data frame独立于其他行 这是一个例子 此代码为每行选择相同的列 但我需要为每行独立选择列 library plyr set seed 12345 df1 lt mdply data frame m
  • 在 Shiny 中使用 readlines(prompt = )

    我有一个代码 使用以下方式获取输入readlines prompt 功能 您能告诉我 Shiny 中的哪个输入函数足以将此代码适应 Shiny 应用程序吗 我需要一个交互功能 我无法使用简单的输入selectInput 因为我有很多read
  • R 中大型稀疏矩阵的聚类分析

    我有一个包含 250000 笔交易 行 和 2183 项 列 的交易数据集 我想将其转换为稀疏矩阵 然后对其进行分层聚类 我尝试了包 sparcl 但它似乎不适用于稀疏矩阵 关于如何解决这个问题有什么建议吗 或者我可以使用任何其他包对稀疏矩
  • 包检查时如何有效处理未压缩的保存?

    在最近开发一个包的过程中 我将数据集包含在data 我的包的文件夹 在我的具体情况下 我有 5 个数据集 所有这些数据集都位于data table格式 尽管我在下面描述的问题仍然存在 如果我将它们保留为data frame 我已将每个人单独
  • readRDS() 加载额外的包

    什么情况下会出现readRDS R 中的函数尝试加载包 命名空间 我很惊讶地在新的 R 会话中看到以下内容 gt loadedNamespaces 1 base datasets graphics grDevices methods sta
  • 如何判断某个软件包是否已经安装?

    当我安装 yaml 包时 如果之前已经安装过 RStudio 则会弹出一条烦人的错误消息 如何判断该软件包是否已安装 以便我可以在代码中决定是否安装该软件包 该消息位于弹出窗口中 内容如下 此安装将更新的一个或多个软件包 当前已加载 在更新

随机推荐

  • linux下如何制作透明窗口

    我想让应用程序成为 Linux 上带有启动屏幕的应用程序 我想使用 X11 和 glx OpenGL 应用程序 我找到了一种方法来删除窗口周围的边框 但我找不到如何使其透明 我怎样才能做到这一点 这是我问题的真正答案 A demonstra
  • ASP.NET Mvc Api:设置 cookie,然后 302/303 重定向会丢失 cookie

    我有一个返回 HttpResponseMessage 的 API 操作 API地址如下 http localhost login authcode xxx API 操作执行一些登录身份验证并将用户重定向到注册或欢迎页面 代码如下 var r
  • JSON 文件的 Mongoimport

    我有一个包含大约 2000 条记录的 JSON 文件 与 mongo 数据库中的文档相对应的每条记录的格式如下 jobID 2597401 account XXXXX user YYYYY pkgT pgi 7 2 5 libA libpg
  • 每个对象的 Groovy 动态属性

    使用 Groovy 1 8 我正在尝试创建一个动态类定义 它将缓存每个对象的属性 我确实用过propertyMissing无需将属性添加到对象就好了 我只是认为缓存属性会更有效 正确的 请注意 每个实例必须有自己不同的属性 下面的代码工作正
  • 在 angularjs 中将表单设置为无效

    我需要在开始时将 ng form 设置为无效 因为它是向导的后续部分 该表单包含一个包含元素的网格 每个元素都有自己的验证 但问题是 当没有元素时 表单显示为有效 当行数为 0 时 我需要将其标记为起始情况无效 如何做到这一点 经过一些研究
  • Azure:通过 ARM 模板将角色分配给存储容器

    我试图通过arm模板将 存储Blob数据贡献者 预览 角色分配给特定的存储容器 但我就是无法弄清楚正确的语法 这就是我所拥有的 schema https schema management azure com schemas 2015 01
  • 如何使用 XPath 查找一组元素中属性的最小值?

    如果我有这样的 XML
  • SCRIPT1002:使用 React + Babel + Webpack 时 IE11 中的语法错误

    我正在尝试使用 Webpack Babel 在 IE gt 11 中运行具有 ES2015 功能的 React 应用程序 该设置是自定义的 使用inferno compat层 所以没有create react app在这里使用 然而 尽管应
  • 通过 dbus 传递大型数据结构

    我正在使用 dbus 来通信两个程序 一个人创建一个大图像 然后将其发送给其他程序以进行进一步处理 我将图像作为 ByteArray 传递 对于 2000x2000 图像 我的程序可以工作 但对于 4000x4000 图像 它会出现以下问题
  • 更改 ActionBar 上溢出按钮的颜色

    是否可以更改操作栏上的溢出按钮 3 个垂直点 的颜色 如果是这样 我们该怎么做 我没有找到溢出按钮的任何样式 Thanks 您可以使用以下样式声明更改用于它的图像
  • 请求头太大

    我在日志中发现了几个IllegalStateException异常 2009 01 28T14 10 16 050 0100 SEVERE sun appserver2 1 javax enterprise system container
  • 如何定义导出常量?

    我一直在尝试新的模块功能 但无法导出全局常量 导出似乎编译得很好 但是在导入时编译器抱怨未声明常量 我的代码 test cpp export module test export struct my type int x y export
  • 无法在Windows XP下运行Light Switch 2012程序

    我已将 Lightswitch 2011 项目迁移到 LS 2012 我通过运行 vslshost exe 启动编译的应用程序 这在 Windows 7 32 和 64 位 上运行良好 但当我使用 Windows XP 时 启动应用程序失败
  • 文件上传php,只获取文件名

    是否可以在不完整上传的情况下获取文件的文件名 意思是用户选择一个文件后 不上传该文件 只获取文件名并保存到数据库 是的 您可以使用下面给出的代码 filename FILES nameofyourfileinput name echo fi
  • 如何将 JSON 数组与 Alamofire 参数结合使用?

    我在构建参数时遇到了一些麻烦 以便我们的服务器 API 能够将其读取为有效的 JSON Alamofire 在 swift 语言中使用这样的参数 let parameters String AnyObject string str para
  • 如何使用 node.js 从(大)文件中进行随机访问读取?

    我是否遗漏了一些东西 或者node js的标准文件I O模块是否缺少常用文件随机访问方法的类似物 seek fseek tell ftell 如果没有这些 如何从节点中的大文件中读取随机固定大小的记录 tell不是 但很少有人不知道自己在文
  • 如何使用 Perl 解析相对日期?

    我很想知道 Perl 中是否有一个模块可以解析 人类格式 日期 我的意思是 明天 星期二 下周 1 小时前 我对 CPAN 的研究表明不存在这样的模块 那么您将如何创建一个呢 NLP 在这方面已经超出了极限 日期 马尼普正是这样做的 这是一
  • 如何在aws cdk中导入现有的ec2实例

    有谁知道如何使用 aws CDK 在 aws 帐户中导入现有的 ec2 实例 我在网上搜索 也浏览了文档 没有运气 所有帮助将不胜感激 您必须创建一个具有实现的自定义静态方法 这与 RDS 的实现类似 https docs aws amaz
  • WordPress 数据库错误 MySQL 服务器已停止查询

    我经常收到此错误 以至于 php error 日志文件每 2 秒增加 1MB 而且网站速度很慢 我尝试将此行添加到 wp db php this gt query set session wait timeout 600 但这没有帮助 We
  • R:ggplot更好的渐变颜色

    I am using ggplot to plot Proportional Stacked Bar plot And the Plot I am getting is something like this 这是我正在使用的自写函数 df