Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在ggplot2中绘制png图像?_R_Ggplot2 - Fatal编程技术网

R 如何在ggplot2中绘制png图像?

R 如何在ggplot2中绘制png图像?,r,ggplot2,R,Ggplot2,图像显示不正确,已向左旋转90度 library(“png”) 图书馆(“ggplot2”) 下载文件(“https://upload.wikimedia.org/wikipedia/commons/7/70/Example.png", “wiki.png”,模式='wb') img=readPNG(“wiki.png”) grd=展开网格(1:178,1:172) 尺寸(img)=c(178*172,3) img=as.data.frame(img) img=cbind(grd,img) co

图像显示不正确,已向左旋转90度

library(“png”)
图书馆(“ggplot2”)
下载文件(“https://upload.wikimedia.org/wikipedia/commons/7/70/Example.png",
“wiki.png”,模式='wb')
img=readPNG(“wiki.png”)
grd=展开网格(1:178,1:172)
尺寸(img)=c(178*172,3)
img=as.data.frame(img)
img=cbind(grd,img)
colnames(img)=c(“X”、“Y”、“R”、“G”、“B”)
img$RGB=RGB(img$R、img$G、img$B)
ggplot(img,aes(x=x,y=y,fill=RGB))+
geom_光栅()+
比例填充标识()

光栅图像本质上是一个矩阵-第一行、第一列位于左上角,并且是典型的矩阵尺寸顺序(行、列)

ggplot
的默认值用于以笛卡尔坐标系打印数据,其中,如果您的绘图具有所有正值,“起点”(原点)位于左下角,并且尺寸的典型顺序为(x,y)


这些是非常不同的系统,因此您需要在这两个系统之间进行转换以采用这种方法:
aes(x=Y,Y=-x,fill=RGB)
-尽管为了让事情更清楚,您可能希望为图像坐标选择不同于
X
Y
的名称。

这是打印约定与图像约定的标准问题

怎么样

ggplot(img, aes(x = Y, y = X, fill = RGB)) + 
      geom_raster() + scale_fill_identity() +   scale_y_reverse()
?