Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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 won'为单位打印光栅输出;不消除图例边距_R_R Raster_Kernel Density - Fatal编程技术网

以R won'为单位打印光栅输出;不消除图例边距

以R won'为单位打印光栅输出;不消除图例边距,r,r-raster,kernel-density,R,R Raster,Kernel Density,在R中,我使用ks包从内核密度分析生成了一个光栅对象。我将其转换为光栅对象(来自光栅包),并尝试使用plot()将该光栅对象绘制为PNG。我希望png对于光栅对象中的每个像素都有一个像素。很简单,对吧?当然,默认情况下,我会在情节中添加各种无关的垃圾。我可以使用plot()或par()中的各种设置删除其中的大部分内容,但无论我做什么,我似乎都无法消除以前由绘图右侧的图例占用的空间 library('ks') library('raster') # generate the data set.s

在R中,我使用ks包从内核密度分析生成了一个光栅对象。我将其转换为光栅对象(来自光栅包),并尝试使用plot()将该光栅对象绘制为PNG。我希望png对于光栅对象中的每个像素都有一个像素。很简单,对吧?当然,默认情况下,我会在情节中添加各种无关的垃圾。我可以使用plot()或par()中的各种设置删除其中的大部分内容,但无论我做什么,我似乎都无法消除以前由绘图右侧的图例占用的空间

library('ks')
library('raster')

# generate the data
set.seed(1)
x = matrix(rnorm(1000,1,0.5),500)

xpix = 100
ypix = 100

# calculate the density function
k = kde(
    x,
    H=matrix(c(0.1,0,0,0.1),2),
    xmin=c(0,0),
    xmax=c(1,1),
    gridsize=c(xpix,ypix)
)
# convert to raster
r = raster(k)
# plot the image to PNG
png('file.png',width=xpix,height=ypix)
    par(
        mar=c(0,0,0,0),
        bty='n',
        bg='black',
        plt=c(0,1,0,1)
    )
    plot(
        r,
        legend=FALSE,
        axes=FALSE,
        plt=c(0,1,0,1)
    )
    # see that 'plt' did not change
    print(par())
dev.off()
如果我在关闭设备之前检查PAR,我可以看到PLT的值不是我设定的值;它显示右侧边距,其中打印区域已被轻推以为非图例留出空间。示例代码在上面,它生成的图像链接到


顺便说一句,我用image()函数而不是plot()实现了正确的效果,尽管这带来了它自身的问题,即透明度不再起作用。我可以用plot()解决这个问题吗?这是非常令人沮丧的,我如此接近,但似乎无法改变绘图区域的大小!如果有任何方法可以使基本函数正常工作,我不想使用其他图形包。

Nate-你有没有一个例子来说明你想要实现什么?预期的image()结果是什么样子的?我希望图像具有定义的分色,并且我希望使用相同尺寸的单独光栅来设置每个像素的透明度。我可以使用image()设置全局透明度,但不能按像素设置。没有任何利润;我想让输入中的一个像素成为输出中的一个像素。Nate-你有没有一个你想要实现的例子?预期的image()结果是什么样子的?我希望图像具有定义的分色,并且我希望使用相同尺寸的单独光栅来设置每个像素的透明度。我可以使用image()设置全局透明度,但不能按像素设置。没有任何利润;我希望输入中的像素是输出中的像素。