Làm cách nào tôi có thể thêm một dải màu dọc cho một ggeplot trong gg Ink?


8

Các ggridges gói cho phép bạn vẽ ridgeplots với một trong hai màu:

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

hoặc với độ dốc màu ngang :

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")

Nhưng tôi muốn biết liệu có thể tạo ra một biểu đồ tương tự với độ dốc màu dọc hay không , như ví dụ này (được vẽ bằng D3.js). Có cách nào để thực hiện một cái gì đó tương tự trong R?

Ridgeplot gradient dọc trong D3.js từ ONS

Nguồn hình ảnh ONS: Thế hệ trung niên rất có thể chết vì tự tử và ngộ độc thuốc


Tôi nghi ngờ nó là có thể. Nhà phát triển nói rằng nó chỉ khả dụng dọc theo trục x và mã trông giống như nó sử dụng các giá trị x để tính toán các bước dọc theo gradient: github.com/clauswilke/ggipes/blob/master/R/geoms-gradient.R
Dan Slone

Câu trả lời:


4

Chúng tôi có thể làm điều này bằng cách sử dụng các gói devoutsvg và các gói Svgpotypesimple có liên quan :

# 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())    

Điều này cung cấp cho bạn một tệp .svg với một gradient dọc như thế này: gradient dọc điền Ridgeplot.

nhập mô tả hình ảnh ở đây


Cập nhật: Chức năng hiện đã có trên GitHub: VictimOfMaths / DeathsOfDespair .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.