在ggplot中将像素图像转换为可缩放矢量图形
Turn pixel image into scalable vector graphic in ggplot
请注意,我对扩展像素数量并插入新值的任何类型的插值算法都不感兴趣。
我想离开基于像素的图像世界,正在寻找一些可扩展的矢量图像解决方案。
有没有办法将 ggplot 中的像素图像转换为彩色网格平滑矢量图形?
以下图片展示了我的目标。
然后抹平。
图片取自以下维基百科文章HERE
请注意,文章中的原始图像是 SVG 文件。您可以任意放大,并且始终拥有平滑的颜色过渡且没有边缘。
一些额外的图片和信息:HERE2
这是满足第一张图片的一些示例数据"nearest"
library(ggplot2)
n = 5
pixelImg <- expand.grid(x=1:n,y=1:n)
pixelImg$value <- sample(1:n^2,n^2,replace = T)
ggplot(pixelImg, aes(x, y)) +
geom_raster(aes(fill = value)) +
scale_fill_gradientn(colours=c("#FFCd94", "#FF69B4", "#FF0000","#4C0000","#000000"))
如果不在 ggplot 中,是否有办法在 ggplot 之外进行?
查看 ggsave()
函数。它支持 .svg
个矢量图形文件。
请注意,我对扩展像素数量并插入新值的任何类型的插值算法都不感兴趣。
我想离开基于像素的图像世界,正在寻找一些可扩展的矢量图像解决方案。
有没有办法将 ggplot 中的像素图像转换为彩色网格平滑矢量图形?
以下图片展示了我的目标。
然后抹平。
图片取自以下维基百科文章HERE
请注意,文章中的原始图像是 SVG 文件。您可以任意放大,并且始终拥有平滑的颜色过渡且没有边缘。
一些额外的图片和信息:HERE2
这是满足第一张图片的一些示例数据"nearest"
library(ggplot2)
n = 5
pixelImg <- expand.grid(x=1:n,y=1:n)
pixelImg$value <- sample(1:n^2,n^2,replace = T)
ggplot(pixelImg, aes(x, y)) +
geom_raster(aes(fill = value)) +
scale_fill_gradientn(colours=c("#FFCd94", "#FF69B4", "#FF0000","#4C0000","#000000"))
如果不在 ggplot 中,是否有办法在 ggplot 之外进行?
查看 ggsave()
函数。它支持 .svg
个矢量图形文件。