R打印不同颜色的数据点组

时间:2019-01-30 01:28:39

标签: r loops colors

我正在R中进行一些基本统计,并且尝试为循环的每次迭代使用不同的颜色。因此,i = 1的所有数据点应具有相同的颜色,i = 2的所有数据点应具有相同的颜色,以此类推。最好的是,对于不同的i,例如从黄色到蓝色,应具有不同的颜色。 (我已经尝试过与Colorramp等打交道,但是我没有设法完成它。)

感谢您的帮助。

library(ggplot2)

#dput(thedata[,2])
#c(1.28994585412464, 1.1317747077577, 1.28029504741834, 1.41172820353708, 
#1.13172920065253, 1.40276516298315, 1.43679599499374, 1.90618019359643, 
#2.33626745030772, 1.98362330686504, 2.22606615548188, 2.40238822720322)
#dput(thedata[,4])
#c(NA, -1.7394747097211, 2.93081902519318, -0.33212717268786, 
#-1.78796119503752, -0.5080871442002, -0.10110379236627, 0.18977632798691, 
#1.7514277696687, 1.50275797771879, -0.74632159611221, 0.0978774103243802)

#OR
#dput(thedata[,c(2,4)])
#structure(list(LRUN74TTFRA156N = c(1.28994585412464, 1.1317747077577, 
#1.28029504741834, 1.41172820353708, 1.13172920065253, 1.40276516298315, 
#1.43679599499374, 1.90618019359643, 2.33626745030772, 1.98362330686504, 
#2.22606615548188, 2.40238822720322), SELF = c(NA, -1.7394747097211, 
#2.93081902519318, -0.33212717268786, -1.78796119503752, -0.5080871442002, 
#-0.10110379236627, 0.18977632798691, 1.7514277696687, 1.50275797771879, 
#-0.74632159611221, 0.0978774103243802)), row.names = c(NA, 12L
#), class = "data.frame")

x1=1
xn=x1+3

plot(0,0,col="white",xlim=c(0,12),ylim=c(-5,7.5))
for(i in 1:3){
y=thedata[x1:xn,4]
x=thedata[x1:xn,2]
reg<-lm(y~x)
points(x,y,col=colors()[i])
abline(reg,col=colors()[i])
x1=x1+4
xn=x1+3
}

2 个答案:

答案 0 :(得分:0)

除了缺乏可复制的示例外,您似乎还有一些误解。

首先,函数colors不使用数字参数,请参见?colors。因此,如果您想在每次迭代中获取不同的颜色,则需要像colors()[i]那样调用它。该代码应类似于以下内容(没有可复制的示例):

for (i in 20:30){
    plot(1:10, 1:10, col = colors()[i])
}

请记住,在for循环内的第一行和第二行中调用x1xn在定义它们之前也会引起错误。 / p>

答案 1 :(得分:0)

colorRampcolorRampPalette的基本思想是它们是功能-它们是返回功能的函数

从帮助页面:

  

colorRampPalette返回一个函数,该函数接受整数参数(所需的颜色数)并返回对给定序列进行内插的颜色字符向量(请参见rgb)(类似于heat.colors或{{1 }}。

因此,我们将从terrain.colors中获得一个黄色到蓝色的调色板函数,然后为它提供我们希望沿着该渐变实际获得颜色的颜色数量:

colorRampPalette

您可以仅通过可视化调色板来进行操作-为不同的# create the palette function my_palette = colorRampPalette(colors = c("yellow", "blue")) # test it out, see how it works my_palette(3) # [1] "#FFFF00" "#7F7F7F" "#0000FF" my_palette(5) # [1] "#FFFF00" "#BFBF3F" "#7F7F7F" "#3F3FBF" "#0000FF" # Now on with our plot x1 = 1 xn = x1 + 3 # Set the number of iterations (number of colors needed) as a variable: nn = 3 # Get the colors from our palettte function my_cols = my_palette(nn) # type = 'n' means nothing will be plotted, no points, no lines plot(0, 0, type = 'n', xlim = c(0, 12), ylim = c(-5, 7.5)) # plot for (i in 1:nn) { y = thedata[x1:xn, 2] x = thedata[x1:xn, 1] reg <- lm(y ~ x) # use the ith color points(x, y, col = my_cols[i]) abline(reg, col = my_cols[i]) x1 = x1 + 4 xn = x1 + 3 } 值尝试以下代码。您还可以尝试不同的选项,也许是不同的起始颜色。我更喜欢使用调色板的n参数来获得更好的结果。

space = "Lab"

enter image description here