在ggplot2中使用黑白配色方案进行绘图?

Posted

技术标签:

【中文标题】在ggplot2中使用黑白配色方案进行绘图?【英文标题】:Plot using black and white color scheme in ggplot2? 【发布时间】:2021-08-26 15:18:12 【问题描述】:

由于大多数科学期刊不鼓励使用彩色图,我如何使用黑白配色方案区分这两种类型(Singleton/Geminate)?

生成当前图的代码是:

ggplot (df, aes(x = Place, y= C2, fill = Consonant)) + 
geom_boxplot() + stat_summary(fun= "mean", position = position_dodge(width = 0.75)) +
labs (title = "Duration of word-medial (C2) consonant for Dogri singleton and 
geminates",
    x= "Place of articulation for C2", y = "C2 duration (ms)", fill = "Consonant 
type")

这是我的数据的 sn-p:

Filename Speaker Consonant           Place Manner   Voicing Beforevowel Gender       
C1 C1_xsampa        C2
1   AK_chape.TextGrid       1 Singleton        Bilabial   Stop Voiceless       Short      
F 149.8670        tS  80.04261
2  AK_chappe.TextGrid       1  Geminate        Bilabial   Stop Voiceless       Short      
F 161.3066        tS 164.55435
3    AK_fati.TextGrid       1 Singleton       Retroflex   Stop Voiceless       Short      
F 115.9713         f  84.22198
4   AK_fatti.TextGrid       1  Geminate       Retroflex   Stop Voiceless       Short      
F 143.3766         f 152.16855
5   AK_katha.TextGrid       1 Singleton   Dental (asp.)   Stop Voiceless       Short      
F 130.1839         k  87.11895
6    AK_kute.TextGrid       1 Singleton Dental (unasp.)   Stop Voiceless       Short      
F 118.7762         k  73.60776
7   AK_kutte.TextGrid       1  Geminate Dental (unasp.)   Stop Voiceless       Short      
F 122.1802         k 197.17515
8    AK_saka.TextGrid       1 Singleton           Velar   Stop Voiceless       Short      
F 112.3296         s  82.99909
9   AK_sakka.TextGrid       1  Geminate           Velar   Stop Voiceless       Short      
F 142.4654         s 201.30976
10  DS_chape.TextGrid       2 Singleton        Bilabial   Stop Voiceless       Short      
M 245.7727        tS  84.37822
C2_xsampa       V1 V1_xsampa        V2 V2_xsampa
1          p 81.90506         @ 124.37444        e:
2         p: 74.69901         @ 115.83760        e:
3         t` 57.98567         @ 123.43885        i:
4        t`: 51.48200         @ 102.79831        i:
5      t_d_h 74.47716         @ 113.86432        A:
6        t_d 73.60776         U 134.66874        e:
7       t_d: 39.20708         U 137.45273        e:
8          k 54.76070         @ 114.91800        A:
9         k: 39.74577         @ 117.70400        A:
10         p 59.32322         @  90.16259        e:

PS R 基本函数 boxplot () 输出黑白图,但我的数据表示的灵活性较低。

谢谢。

【问题讨论】:

【参考方案1】:

尝试使用黑色/灰色作为颜色的 ggpattern 看看是否有效?

https://coolbutuseless.github.io/2020/04/01/introducing-ggpattern-pattern-fills-for-ggplot/

或者,如果期刊以单色打印,而您以高对比度的颜色发送给他们,它仍然会显示出打印差异。这就是许多经济学家对 stata 所做的事情。看起来很糟糕,但这不是世界末日。

【讨论】:

感谢您向我介绍我不知道的“ggpatern”包!【参考方案2】:

您可以只使用 ggplot 中的 scale_colour_grey()scale_fill_gray()

https://ggplot2.tidyverse.org/reference/scale_grey.html

另一种选择是使用scale_fill_manual(values = c('black', 'grey50')) 或任何其他符合您兴趣的颜色组合手动指定箱线图的填充颜色。

【讨论】:

感谢您的建议,@D.Martinez。手动指定 scale_fill 符合我的目的。只是想知道是否可以在框内引入一个模式来更清楚地区分这两个因素?请参阅 Andrew 对 'ggpattern package' 的评论。祝福!

以上是关于在ggplot2中使用黑白配色方案进行绘图?的主要内容,如果未能解决你的问题,请参考以下文章

好用的黑白配色法

R语言使用ggplot2包的快速可视化函数qplot绘制散点图(分类变量分组配色连续值程度配色)实战

MATLAB | MATLAB配色不够用,近2000款配色来啦

数学建模番外篇8:画图配色

18个黑白配色网页设计

颜值不输黑白!Nike React Element 87 全新配色已经涨价了!