是否有一种简单的方法来获取R中绘图的RGB组成?

现在,我正在做的是将绘图写入外部文件,然后使用png包中的readPNG读取它。 我还没有发现任何东西,但是肯定有更好的方法可以做到这一点。

[编辑]代码:

INPUT <- c("3
            0 1 3 3
            2 2 6 4
            1 0 3 5")

require(png)

 # This is the pixel precision, 1e4 recommended for optimal results
PRECISION <- 1e4  

 # Just parsing the initial input and the vectors
sdata <- strsplit(gsub("\n", " ", INPUT), split=c(" "))[[1]] 
data  <- as.numeric(sdata)

 # Some usefull matrices for the plot points
Rm  <- matrix(data[-1], data[1],4,T)
Rmx <- cbind(Rm[,c(1,1)], Rm[,c(3,3)], Rm[,1])
Rmy <- cbind(Rm[,c(2,4)], Rm[,c(4,2)], Rm[,2])
 # and for the overall big rectangle
B  <- c(min(Rm[,1]), min(Rm[,2]), max(Rm[,3]), max(Rm[,4]))
Bx <- c(B[c(1,1)],B[c(3,3)],B[1])
By <- c(B[c(2,4)],B[c(4,2)],B[2])
A  <- B[3:4]-B[1:2]

 # Biggest number of digits given, not perfect but it works
D <- max(nchar(gsub("(.*\\.)|([0]*$)", "", sdata[-1])))

 # Create the plot and save it in the working directory, 
 #  then read it back to get the RGB information
png("rgb1.png", bg="black", width=PRECISION, height=PRECISION)
plot(x=Rmx, y=Rmy,'n', xaxt='n', yaxt='n', xlab="", ylab="", bty='n', 
     xlim=B[c(1,3)], ylim=B[c(2,4)])
polygon(Bx, By, col="blue", border=NA)
sapply(1:nrow(Rm), function(v){ polygon(Rmx[v,], Rmy[v,], 
                                        col="red", border=NA)})
dev.off()
plot.rgb <- readPNG("rgb1.png")

 # Compute area
Re <- sum(plot.rgb[,,1])
Bl <- sum(plot.rgb[,,3])
round( (Re/(Bl+Re))*prod(A), digits=D+1 )

  ask by Pane translate from so

本文未有回复,本站智能推荐:

1回复

.csv文件中的RGB颜色R

我担心以下问题:我有一个.csv文件,该文件带有我公司公司设计的RGB颜色。 因为您没有文件,所以一些信息 退货 'data.frame':66磅。 1个变量的总和:$ V1:因子w / 66级“ 0,0,0”,“ 0,122,155”,..:1 64 5 20 37 5
1回复

如何从R光栅包中以plotRGB格式化轴?

我正在尝试并排绘制两个地块。 一个是我正在使用plotRGB()的RasterStack。 但是,轴是一团糟-它为纬度和经度绘制了太多的小数位。 我还想更改字体大小和文本方向。 这在plot()中很简单,但是对于plotRGB我无法弄清楚。 有人可以帮忙吗? 这是代码:
1回复

如何使用ggplot2绘制带有(x,y,r,g,b)坐标的图像?

我有一个数据框image.rgb ,我已经为其中的每个坐标加载了r,g,b值(使用jpeg和reshape包)。 它现在看起来像: 现在我想用ggplot2绘制这个'图像'。 我可以绘制一个特定的“通道”(红色或绿色或蓝色), 一个在使用时间: ...在默认的ggplot2色
1回复

R图:使用数据帧中的RGB值

我无法使用数据框中存在的RGB颜色。 看来我无法使用此数据框中存在的RGB。 即使我尝试将RGB转换为十六进制值,也有些奇怪。 在哪里工作: 这里有些鱼,但是我不能动弹。 任何建议,不胜感激。
1回复

rg中带有ggplot2的rgb()

在ggplot2中,我们可以选择按名称或十六进制代码设置颜色。 有没有办法以同样的方式使用rgb值? 我搜索了文档,但快速回答似乎是'不'。 (我想使用rgb的原因是我有一些颜色,我将用于某些绘图,我将它们全部用rgb格式。我可以从这里的地方获取十六进制,但如果它会很好,如果我可以直接输入
2回复

图像的RGB立方体

我正在尝试在python中使用matplotlib创建图像的RGB立方体。 我有一个python列表,其中包含[(2,152,255),(0,0,0)...]格式的所有像素的RGB。 我用散点图绘制所有点,但我不知道如何用各自的RGB颜色绘制每个RGB点。 我已经尝试做类似ax.sca
1回复

具有RGB颜色的MATLAB绘图

我有一个矩阵,其中包含来自不同类别的采样点。 假设它们是10个主题的特征,每个主题有80个样本。 所以我有一个800 x 3的矩阵。 我想使用行作为3D点来绘制它,所以我使用了: 这可行,但是参数'r*'所有点都绘制为红色星号。 但是我想将每个类绘制成不同的颜色。
2回复

RGB图像分量未对齐

我正在使用aplypy从三个FITS文件创建Eagle星云的RGB图像,分别代表图像的红色,绿色和蓝色分量。 FITS文件位于此处 ,红色为673nm,绿色为656nm,蓝色为502nm。 该图像应该看起来像这样 ,但是看起来像下面的图像。 蓝色分量显然与红色和绿色未对齐。
2回复

如何用RGB指示绘制深绿色图形

我想绘制深绿色和深绿色虚线图,但不幸的是MatLab抱怨矢量的长度不同 使用图时出错 向量的长度必须相同。 EasySim中的错误(第174行)
1回复

使用JS / Canvas在色轮上绘制RGB或十六进制值

我有一个已处理的RGB值数组,我想将它们绘制到一个色轮上,如下图所示。 例如。 我希望上面示例列表中的每个对象在圆上方绘制为标记/点。 我已经找到了以多种方式在画布上创建色轮的代码,但是我一生都找不到或无法找到将RGB代码转换为合理的XY坐标以进行绘图的信息。 色轮画布