首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >倒置发散调色板

倒置发散调色板
EN

Stack Overflow用户
提问于 2014-05-23 08:53:45
回答 2查看 6.5K关注 0票数 8

我经常使用一个发散的调色板,它映射到一个参数,这个参数在中间的某个地方有一个有趣的转折点。

不幸的是,现有的不同调色板--例如来自C. Brewer的调色板--似乎都有两个极端的饱和颜色,而不是中间的,通常被定义为白色或浅灰。这里有一个例子来说明

由文本标签指示的连续参数通过相关曲线的峰值达到最大值的最优值。

在浅白或灰色背景(典型的ggplot2)上,我的数据中最有趣的部分几乎是看不见的;我希望它能“弹出”更多,而两边的值都会逐渐远离中心,呈现出不同的色调。有没有什么好的调色板来源,在中间有一个较强的饱和,并在双方褪色?

这里有一个示例代码来说明,选择黑色作为中性中间点(我更喜欢一些不那么戏剧化的东西,但很难让它与双方都很好地融合)。

代码语言:javascript
运行
AI代码解释
复制
require(RColorBrewer)
grid.newpage()
grid.raster(brewer.pal(7,"PRGn"), 0.25, 0.5, 0.4, 1)

custom <- c(brewer.pal(3,"BuPu"), "black", rev(brewer.pal(3,"BuGn")))
grid.raster(custom, 0.75, 0.5, 0.4, 1)

编辑:为了澄清,我熟悉colorRampPalettescale_colour_gradientn,我在

1-为此目的选择好的颜色;

定义一个颜色刻度,将手工制作的调色板映射到一个变量,类似于scale_colour_gradient2mid参数所做的操作(中心颜色可能不在参数范围的精确中心)。

EN

回答 2

Stack Overflow用户

发布于 2014-05-23 09:31:48

您可能喜欢使用choose_palette(),这是一个相对较新的颜色空间包。

该包中的功能为您提供了对颜色空间的色调、色度和亮度特性的完全和大部分正交控制。choose_palette()为您提供了一种探索打开的巨大可能性空间的方便方法。

下面是启动调色板选择器的代码,后面是GUI工具的屏幕截图。(请注意,为了使范围的中部比末端更暗,您需要交换发散调色板的默认亮度值,这里表示为"L1“和”L2“。)

代码语言:javascript
运行
AI代码解释
复制
library(colorspace)
library(grid)

custom <- choose_palette()

下面是一个例子,它让我两个人在玩游戏的一分钟内

代码语言:javascript
运行
AI代码解释
复制
custom <- diverge_hcl(20, h=c(-225,277), c=80, l=c(80,25))
grid.newpage()
grid.raster(custom, 0.25, 0.5, 0.4, 1)

软件包及其背后的思想都被很好地记录在软件包vignette (vignette("hcl-colors"))和(警告: pdf)的配套文章中,文章发表在“计算统计和数据分析”杂志上。

票数 11
EN

Stack Overflow用户

发布于 2014-05-23 10:17:20

我过去做过的一种方法是逆转分化的坡道(接近你所做的,但不完全是这样),然后使用alpha通道来减弱坡道的末端。

代码语言:javascript
运行
AI代码解释
复制
library(ggplot2)
pal <- brewer.pal(7,"PRGn")
custom <- c(rev(pal[1:3]),rev(pal[5:7]))
alpha  <-  c(seq(3),rev(seq(3)))/3
x <- 1:6
y <- rep(1)
MyDF <- data.frame(custom,alpha,x,y)
MyPlot <- ggplot(data = MyDF, aes(x = x, y = y, fill=custom, alpha=alpha)) + geom_bar(stat = "identity", color="white") + 
          scale_fill_identity() + scale_alpha_continuous(range = c(0.6, 1))
MyPlot

我所知道的唯一一篇讨论像这样的翻转彩色坡道的文章是圆形数据存取,一种用于高分辨率圆形空间数据(Morphet & Symanzik,2010年)的图形(没有在线版本,对不起)。基本上,他们改变了价值和饱和度,使坡道的末端合并在一起--尽管它们在细节上有点不足。这是他们的一个图形的图像。

它们在现在不推荐的包CircSpatial中有这些坡道,所以您可以选择它们是如何从那里生成坡道的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23834653

复制
相关文章
曾经,我以为我很懂MySQL索引
  在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
陈哈哈
2020/09/11
8070
曾经,我以为我很懂MySQL索引
匿名函数自调用_自己调用自己的函数叫
我们知道一个HTML文件在被加载的时候是从根标签html依次往下的,在遇到link,script等标签引入的外部资源时,下载外部资源,并执行外部资源。在js中,表达式会被立即执行,也就是说,不管是引入的外部js文件还是嵌入在html文件中的js脚本,其中的表达式都会被立即执行。 函数名是一个指向函数的指针。在JavaScript中,定义函数有常见的两种形式:函数声明和函数直接量(或者叫函数表达式)。 函数声明:采用function定义声明函数的标准写法,包括function,函数名,函数体。如
全栈程序员站长
2022/11/09
2.6K0
这代码写的太烂了!你以为我真想写“垃圾代码”吗?
很多时候作为底层的“码农”我们并没有选择权,然后我们的青春就浪费在了重复写垃圾代码里,浪费在了“项目目标里”,自己得到的也就是比正常小白领多一点的薪水,但是自己的发展空间被严重限制了
搜云库技术团队
2019/09/26
1K0
我是不会运行你的代码吗?不,我是不会导入自己的数据!
常常遇到有人问起看到分享的教程导入数据的方式是data(dune)等直接调用系统的数据,而自己怎么读入自己的数据呢?
生信宝典
2022/01/18
1.5K0
我的细胞系还是我以为的细胞系嘛?
我们在做细胞实验的时候,经常会有这样的疑虑,细胞被那么多人蹂躏了那么多次了,那我现在操作的细胞当时我以为的那个细胞系嘛?会不会有人在传代的时候不小心把这个细胞系的名字写成了另外的名字,然后就这样一直传下去了呢。
医学数据库百科
2020/07/07
4700
关于Linux的grep -f命令,我以为我发现了bug
今天,我像往常一样提取基因组的样本,我有一堆样本的ID,需要从所有的基因型的文件中提取出来。
邓飞
2021/09/03
1.2K0
一日一技:多个Python项目怎么调用我自己的工具函数?
在多年写代码的过程中,我总结了不少常用的工具函数。这些工具函数有的能够实现快速重试网络请求,有的可以把任意格式的时间转成标准格式,还有的可以自动生成正则表达式。
青南
2022/05/23
1.1K0
一日一技:多个Python项目怎么调用我自己的工具函数?
我准备自己做一个卫星
我是不是膨胀了,连卫星都敢做了?不知道你是否有想过自己制作一颗卫星吗?看完本篇文章,你也能自己做个卫星,要想上天就差个火箭了!
单片机点灯小能手
2020/07/17
1.1K0
我准备自己做一个卫星
我以为我很懂Promise,直到我开始实现Promise/A+规范
2我一度以为自己很懂Promise,直到前段时间尝试去实现Promise/A+规范时,才发现自己对Promise的理解还过于浅薄。在我按照Promise/A+规范去写具体代码实现的过程中,我经历了从“很懂”到“陌生”,再到“领会”的过山车式的认知转变,对Promise有了更深刻的认识!
程序员白彬
2021/03/09
6480
我以为我很懂Promise,直到我开始实现Promise/A+规范
我以为我很懂Promise,直到我开始实现Promise/A+规范
我一度以为自己很懂Promise,直到前段时间尝试去实现Promise/A+规范时,才发现自己对Promise的理解还过于浅薄。在我按照Promise/A+规范去写具体代码实现的过程中,我经历了从“很懂”到“陌生”,再到“领会”的过山车式的认知转变,对Promise有了更深刻的认识!
程序员白彬
2021/03/23
8000
我可以在一个构造函数中调用另一个构造函数么
但在 C++11 版本之前是不可以的,不过你可以通过两种方式来模拟实现(可以参见 the C++ FAQ entry),
ClearSeve
2022/02/10
3.2K0
[C#]我自己写的一个对字节中每位进行修改值的函数
byte初始状态: 11111111 byte修改第0位后的结果: 01111111 byte修改第1位后的结果: 00111111 byte修改第2位后的结果: 00011111 byte修改第3位后的结果: 00001111 byte修改第4位后的结果: 00000111 byte修改第5位后的结果: 00000011 byte修改第6位后的结果: 00000001 byte修改第7位后的结果: 00000000
静默虚空
2022/05/07
2.2K0
GitHub:我开源我自己;CEO:不存在的
TypeScript的开发者Resynth忽然Po了篇文章,表示代码托管服务GitHub的全部源代码被泄露。
龙哥
2020/11/19
5390
GitHub:我开源我自己;CEO:不存在的
我卷我自己——cvpr2021:Involution
本文重新回顾了常规卷积的设计,其具有两个重要性质,一个是空间无关性,比如3x3大小的卷积核是以滑窗的形式,滑过特征图每一个像素(即我们所说的参数共享)。另外一个是频域特殊性,体现在卷积核在每个通道上的权重是不同的。
BBuf
2021/03/25
1.9K1
故障分析 | MySQL:我的从库竟是我自己!?
爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查。热爱互联网,会摄影、懂厨艺,不会厨艺的 DBA 不是好司机,didi~
爱可生开源社区
2023/08/18
2180
故障分析 | MySQL:我的从库竟是我自己!?
用XGB调XGB?"我"调"我"自己?
上篇《深恶痛绝的超参》已经介绍了很多实用的调参方式,今天来看一篇更有趣的跳槽方法,用ML的方式调ML的模型我们用我们熟悉的模型去调我们熟悉的模型,看到这里很晕是不是,接下来我们就看看XGBoost如何调XGBoost。
炼丹笔记
2021/06/15
5000
我什么也不懂,能搞个自己的网站吗?能!
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
我被狗咬了
2019/11/12
2.3K0
重构 -- 我是一个类,难道我不配有专属的测试代码吗?
刚看到这个观点的时候,我是很不以为然的,谁让它标题不吸引人>>>《构建测试体系》 就这标题,谁不知道要测试啊。还好我没有“以貌取文”,我认真的看了下去。
看、未来
2020/08/26
7730
我眼中的变量聚类
‍‍‍‍‍ 连续变量压缩的基本思路为:建模之前使用主成分、因子分析或变量聚类的方法进行变量压缩,后续建模时使用向前法、向后法、逐步法或全子集法进一步进行变量细筛。虽然方法的名称叫做变量聚类,但却并不是聚类分析,而是一种主成分分析的方法。
许卉
2019/07/15
1.5K0
我眼中的变量聚类
点击加载更多

相似问题

我可以为spring提供我自己的变量插值器吗?

10

Powershell:我可以为我自己的函数参数使用一个现有的枚举吗?

110

我可以为我自己的类创建资源属性吗?

10

我可以为carrot2使用我自己的标签吗?

16

我可以为我的业务逻辑创建自己的状态代码吗?

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档