Tôi làm cách nào để tạo mũi tên hoặc đoạn có màu gradient bằng R?tạo mũi tên có màu gradient
Trả lời
Hãy thử điều này,
library(grid)
png("mask.png")
grid.polygon(c(-0.06, 0.06, 0.06, 0.15, 0, -0.15, -0.06),
c(-5, -5, 2.5, 2, 5, 2, 2.5), gp=gpar(fill="black"),
def="native",
vp=viewport(xs=c(-0.15, 0.15), ys=c(-5, 5)))
dev.off()
library(png)
m <- readPNG("mask.png", native=FALSE)
mask <- matrix(rgb(m[,,1],m[,,2],m[,,3]),
nrow=nrow(m))
rmat <- matrix(rgb(colorRamp(c("blue","white","red"))(seq(0,1,length=nrow(m))), maxColorValue=255),
nrow=nrow(m), ncol=ncol(m))
rmat[mask == "#FFFFFF"] <- NA
grid.newpage()
grid.raster(rmat)
Sửa: bạn có thể tái sử dụng nó trong một âm mưu, ví dụ
library(ggplot2)
ggplot(iris) + geom_path(aes(Sepal.Length, Petal.Length, colour = Petal.Width)) +
guides(colour = guide_colourbar()) +
annotation_custom(rasterGrob(rmat, width=unit(1,"npc"), height=unit(1, "npc")),
x = 6, xmax=6.2, y=2.5, ymax=4)
Trình diễn tuyệt vời về tạo mặt nạ và sau đó tô màu hình ảnh png bằng 'colorRamp'. Có thể được sử dụng trong mạng và như một đối tượng độc lập để dán vào các ứng dụng khác. –
Tôi nghĩ rằng Jim Lemon nên được tự động ban cho 10K, thậm chí có thể là 20K, đại diện cho SO chỉ bởi đức hạnh của tất cả công việc của mình trong những năm qua tạo ra các giải pháp cơ sở đồ họa. Anh chàng này thật tuyệt vời. Thời gian và một lần nữa ai đó sẽ yêu cầu một cái gì đó trên Rhelp, và ông sẽ whip lên một giải pháp. Dưới đây là "cầu vồng ngẫu nhiên" biếu không của trang trợ giúp:
require(plotrix)
x<-c(0,cumsum(rnorm(99)))
y<-c(0,cumsum(rnorm(99)))
xydist<-sqrt(x*x+y*y)
plot(x,y,main="Random walk plot",xlab="X",ylab="Y",type="n")
color.scale.lines(x,y,c(1,1,0),0,c(0,1,1),colvar=xydist,lwd=2)
Tất nhiên, tác giả của 'qplot (x, y, color = xydist, geom =" path ") của ggplot2 cũng có fanclub của riêng mình. – baptiste
Bạn có thể cụ thể hơn, có thể đưa ra một mô tả đầy đủ của trường hợp sử dụng của bạn ... Bạn đã thử gì? – Justin