如何在R语言饼图中匹配默认调色板添加图例?
解决R语言饼图默认颜色与图例匹配的问题
R中pie()函数省略col参数时,会自动使用当前调色板的前n种颜色(n为饼图扇区的数量),默认调色板就是官方文档提到的"pastel"色系,你可以通过以下方式让图例颜色和饼图完全匹配:
方法一:提前获取默认颜色(逻辑清晰)
# 统计类别并获取扇区数量 species_count <- table(iris$Species) sector_num <- length(species_count) # 提取pie默认使用的颜色 default_colors <- palette()[1:sector_num] # 绘制饼图(使用默认颜色) pie(species_count) # 添加颜色匹配的图例 legend('right', c('setosa', 'versicolor', 'virginica'), fill = default_colors)
方法二:直接在图例中调用(写法简洁)
如果不想提前创建颜色变量,可直接在legend()的fill参数里调用调色板对应数量的颜色:
pie(table(iris$Species)) legend('right', c('setosa', 'versicolor', 'virginica'), fill = palette()[1:length(table(iris$Species))])
问题说明
你之前用colors(3)会随机选取3种颜色,这就是图例和饼图颜色不匹配的原因。而palette()返回的是当前R使用的默认调色板,pie()默认就是从这里取前n种颜色,所以用这个方法能完美匹配。
内容的提问来源于stack exchange,提问作者NicolasBourbaki
相关产品推荐
相关产品推荐

