SAS画图如何实现颜色自由?

历练足够的SP们一定遇到过注重细节、精益求精(chuī máo qiú cī)的甲方爸爸。比如提个这样的Comment:这个图的蓝色有点丑,能不能换个Tiffany蓝?


❓那么画图的时候,如何实现想用什么颜色就用什么呢?🤔

解决这个问题,我们先来看看在SAS如何定义颜色。

SAS命名方案如下:

  • RGB (red green blue)
  • RGBA (red green blue transparency)
  • CMYK (cyan magenta yellow black)
  • HLS (hue lightness saturation)
  • HSV/HSB (hue saturation brightness)
  • Gray scale
  • SAS color names (from the SAS Registry)
  • SAS Color Naming System (CNS)

不愧是SAS,包含这么多命名方案呀👍!那这些都是什么意思呢?

1. RGB

RGB (Red, Green, Blue)颜色就是指通过红、绿、蓝三原色的不同比例混合,可以得到其他所有颜色。

所以RGB颜色代码(a b c)由三个数字组成,每个数字可以在[0,255]内取值。为啥最大只能到255呢?这个相信很多小朋友小学上微机课有听老师讲过,一个字节(byte)=8比特(bit), 8位的二进制数有2^{8}=256个, 最小是00000000,最大是11111111,转化成十进制就是0-255(SAS中用十六进制数来指定颜色代码,所以范围为00-FF)。因此,RGB代码可以指定256^{3}=16777,216种颜色。

2. RGBA

RGBA (Red, Green, Blue, Transparency)颜色与RGB相比,只多了一个参数alpha,来控制颜色的透明度。

四个分量取值范围也都是:00-FF。对于透明度参数alpha来说,00代表不透明度为0%,FF代表不透明度为100%。

3. CMYK

CMYK(Cyan, Magenta, Yellow, Black)颜色用于四色印刷,基于物体反射光的原理。将等量的青色、品红和黄色混合在一起应该会产生黑色,但由于颜料、染料很难达到严格标准的颜色,混合后只能得到很深的灰色,并不是黑色,所以在印刷中单独加入黑色black,用K来表示黑色,常见的喷墨打印机墨盒就是这四种颜色。


4. HLS

HLS(Hue, Lightness, Saturation)根据色相、明度、饱和度来定义颜色。

Hue取值范围为0-360°,代表一个角度。0°时为蓝色,120°红色,240°为绿色。360°时相当于返回0°为蓝色。明度和饱和度取值范围为0-255。


5. HSV/HSB

HSV(Hue, Saturation, Value)和HLS差不多的。两种色彩模式的色相Hue是完全一样的,饱和度和明度不太一样。

具体来说:
HSV的Saturation控制纯色中混入白色的量,值越大,白色越少,颜色就更纯。所以HSV柱体越靠近中心,颜色越接近白色,越往外越接近于该色相更纯的颜色。
HSV中的Value控制纯色中混入黑色的量,值越大,黑色越少,明度越高。HSV柱体由下而上颜色更亮,底层接近于黑色。
HSL中Saturation表示色彩纯度,值越大,颜色越纯;值越小,颜色越接近于灰色。
HSL中的Lightness控制纯色中混入黑白两种颜色,值越小,颜色越接近黑色,值越大,越接近于白色。


6. Gray Scale

SAS为灰色专门提供了一个灰度颜色代码,用GRAYhh表示, hh是灰色的亮度,是一个十六进制数,范围:00-FF,即提供了256级灰度。

SAS颜色命名方案总结

7. SAS Color Names

上面介绍的全部都是用代码表示颜色的,但一般来说,我们平常不太会用以上的方式写SAS程序,不是很可视化,当需要改个颜色时,不知道哪个是哪个,还得解析一下颜色代码😅。所以我们常用的是使用SAS注册表中预先定义好的一些颜色名称来指定颜色。

在SAS中Run以下代码,会在Log窗口输出上百种SAS预先定义好的颜色名称,以及相应的RGB代码。

proc registry list startat="COLORNAMES";
run;

也可以在sas help搜关键字Predefined colors,随意挑选喜欢的颜色用哦!


8. SAS Color Naming System (CNS)

SAS CNS颜色命名系统也是通过Lightness,Saturation,Hue三个分量去控制颜色,有点类似HSL,区别在于CNS的取值都是字符,而且是SAS内置的颜色,范围不多。每个分量的取值如下表。

Lightness Saturation Hue
Black Gray Blue
Very Dark Grayish Purple
Dark Moderate Red
Medium Strong Orange/Brown
Light Vivid Yellow
Very Light Green
White

\color{blue}{CNS指定颜色注意事项}
💠黑色 白色 不能使用Saturation、Hue
💠如果不加指定, 那么Lightness默认为Medium, Saturation默认为Vivid
💠灰色无需指定Hue

也就是说除了黑、白、灰之外,设置其他颜色必须指定Hue。

\color{blue}{CNS指定颜色格式}
💠无分隔符,依次连接L S H的取值: verylightmoderatepurplishblue
💠以下划线为分隔符:very_light_moderate_purplish_blue
💠以空格为分隔符,加引号:"very light moderate purplish blue"

如果CNS color name已经是SAS注册表中定义好的颜色,那么会优先使用SAS注册表中定义的颜色,部分CNS Color和SAS注册表中的颜色名称相同,但颜色值会有差异。

如下图,深橘色,RGB代码是FF8C00, 这个颜色在SAS注册表中名称为DarkOrange,这个命名也可以是一个CNS color,所以直接如果用CNS颜色代码DarkOrange,会显示FF8C00这个颜色,如下图的前三行。如果想显示CNS color指定的Dark Orange,就需要以\color{#D4C934}{下划线为分隔符}来指定颜色,或者\color{#D4C934}{以空格分开并加上引号},表明这是CNS color命名方案,如下图后三行的显示结果。

CNS Color & SAS Registry Color

以上就是SAS定义颜色的所有命名方案。一般来说,我们使用SAS注册表颜色名称,CNS名称,或者灰度颜色代码就足够了,所见即所得,也方便更好地维护程序。不过回到最初的问题,如果客户指定了某某颜色,或者给我们一张图,需要我们按照所给例图的配色方案画图。这个时候怎么办呢?
💠首先选择一款取色软件,很多软件都带有取色器。比如,WPS、Office的PPT、Snipaste等等;
💠取色之后,获得RGB代码;
💠获得的RGB一般都是十进制的,转化为十六进制,就可以在SAS中定义了。

如果大家画图,对审美要求比较高的话,可以平时积累一些好看的配色方案。分享几个优雅的配色方案!😎




参考文献:SAS/GRAPH(R) 9.3: Reference, Third Edition.

---------------- END----------------

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容