gpt4 book ai didi

r - 如何向 ggridges 中的脊线图添加垂直颜色渐变?

转载 作者:行者123 更新时间:2023-12-02 01:21:36 25 4
gpt4 key购买 nike

ggridges 包允许您使用任一纯色绘制山脊图:

ggplot(iris, aes(x=Sepal.Width, y=Species))+
geom_density_ridges(alpha=0.33, scale=2, fill="#0570b0", colour=alpha(0.1))+
theme_classic()

或使用水平颜色渐变:

ggplot(iris, aes(x=Sepal.Width, y=Species, fill=..x..))+
geom_density_ridges_gradient(scale=2,colour=alpha(0.1))+
theme_classic()+
scale_fill_gradient(low="#0570b0", high="White")

但我想知道是否可以生成具有垂直颜色渐变的类似图表,如本示例(使用 D3.js 绘制)。有没有办法在 R 中实现类似的东西?

Vertical gradient ridgeplot in D3.js from the ONS

图片来源ONS: Middle-aged generation most likely to die by suicide and drug poisoning

最佳答案

我们可以使用devoutsvg和相关的svgpatternsimple包来做到这一点:

# install packages    
# devtools::install_github("coolbutuseless/lofi")
# devtools::install_github("coolbutuseless/minisvg")
# devtools::install_github("coolbutuseless/devout")
# devtools::install_github("coolbutuseless/devoutsvg")
# devtools::install_github("coolbutuseless/poissoned")

library(lofi)
library(minisvg)
library(devout)
library(devoutsvg)
library(svgpatternsimple)
library(poissoned)

#create gradient
grad <- create_gradient_pattern(id="p1", angle=90, colour1="White",
colour2="#0570b0")

#visualise it
grad$show()

#encode it
gradRGB <- encode_pattern_params_as_hex_colour(pattern_name="gradient",angle=90,
colour1="White", colour2="#0570b0")

#draw graph
svgout(filename = "test.svg", pattern_pkg="svgpatternsimple")
ggplot(iris, aes(x=Sepal.Width, y=Species))+
geom_density_ridges(alpha=0.33, scale=2,
fill=gradRGB, colour=alpha(0.1))+
theme_classic()
invisible(dev.off())

这将为您提供一个具有垂直渐变的 .svg 文件,如下所示:垂直渐变填充脊线图。

enter image description here

<小时/>

更新:功能现已开启 GitHub: VictimOfMaths/DeathsOfDespair .

关于r - 如何向 ggridges 中的脊线图添加垂直颜色渐变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58525699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com