我对R相当陌生,我有以下疑问:
我试图在R中生成一个有多条线(数据系列)的图。每一行都是一个类别,我希望它有一个独特的颜色。
目前我的代码是这样设置的:
首先,我创建了一个空的情节:
plot(1,type='n',xlim=c(1,10),ylim=c(0,max_y),xlab='ID', ylab='Frequency')
然后,对于我的每个类别,我在这个空图中使用“for”循环绘制线条,就像这样:
for (category in categories){
lines(data.frame.for.this.category, type='o', col=sample(rainbow(10)), lwd=2)
}
这里有8个类别,所以在情节中产生了8条线。正如你所看到的,我试图从彩虹()函数中采样一种颜色来为每一行生成一种颜色。
然而,当绘图生成时,我发现有多条线具有相同的颜色。例如,这8条线中有3条是绿色的。
如何使这8条线中的每一条都具有独特的颜色?
还有,我如何在剧情传奇中体现这种独特性?我试图查找传奇()
函数,但是不清楚我应该使用哪个参数来反映每个类别的独特颜色?
任何帮助或建议将不胜感激。
你有正确的一般策略来使用基本图形来做这件事,但是正如所指出的,你实际上是告诉R从每行10个颜色中选择一个随机的颜色。考虑到这一点,你偶尔会得到两条颜色相同的线也就不足为奇了。下面是一个使用基本图形的示例:
plot(0,0,xlim = c(-10,10),ylim = c(-10,10),type = "n")
cl <- rainbow(5)
for (i in 1:5){
lines(-10:10,runif(21,-10,10),col = cl[i],type = 'b')
}
请注意,使用type="n"
来取消设置窗口的原始调用中的所有绘图,并在for循环中索引cl
。
如果你想要一个ggplot2
解决方案,你可以这样做,如果你可以把你的数据塑造成这种格式(见下面的例子)
# dummy data
set.seed(45)
df <- data.frame(x=rep(1:5, 9), val=sample(1:100, 45),
variable=rep(paste0("category", 1:9), each=5))
# plot
ggplot(data = df, aes(x=x, y=val)) + geom_line(aes(colour=variable))
如果您的数据是宽格式的matplot
就是为此而设计的,并且经常被遗忘:
dat <- matrix(runif(40,1,20),ncol=4) # make data
matplot(dat, type = c("b"),pch=1,col = 1:4) #plot
legend("topleft", legend = 1:4, col=1:4, pch=1) # optional legend
问题内容: 我试图在bufferedimage上绘制水平和垂直线。它最终应该看起来像一个网格单元。但是,当我运行代码时,我只看到两行:最左边的行和最上面的行(即,从0,0到0,图像的高度和从0,0到图像的宽度,0的一行),这里是代码段: 和覆盖的绘制方法: 所有这些都在扩展了JPanel的名为RobotMaze的类中。任何帮助表示赞赏。 问题答案:
我想创建一个包含三条线(男性、女性、未知)的折线图。这是我的数据示例: 是否有一个选项,在图中自动创建三行或我需要循环通过数据和创建三个跟踪自己?到目前为止,这是我的代码:
主要内容:示例可以使用类的方法在图像上绘制一条线。以下是此方法的语法。 该方法接受以下参数 - mat - 表示要在其上绘制线条的图像的Mat对象。 pt1和pt2 - 表示要绘制线条的点的两个点对象。 scalar - 表示圆的颜色的标量对象(BGR)。 thickness - 表示线条粗细的整数; 默认情况下,厚度值为。 示例 以下程序演示如何在图像上绘制线条并使用JavaFX窗口显示。 在执行上述程序时,
我正在尝试使用swing制作一个rpg(是的,这是愚蠢的,我同意,但我这样做是为了学习,而不是实际的工作产品)。目前我正在研究每个角色的统计。 我有一个JPanel,我想画一条线。 左侧是一个JPanel,它有两个组件:表1和JLabel。右侧也是JPanel,它有自己的元素,但那是另一回事了。 我的问题是,我想创建一个只有一个图像的jpanel,该图像将是两行,与表中选定的元素相关。 但不幸的是
本文向大家介绍android绘制多个黑竖线条,包括了android绘制多个黑竖线条的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了android绘制多个黑竖线条展示的具体代码,供大家参考,具体内容如下 1.写一个LinearLayout的布局,将宽度写成5dp将高度写成match_parent. 2.在写一个类继承LinearLayout,用LayoutInflater实现子布局的在
我有来自不同板上多个器件的温度数据,例如,在板1上,我有PCB本身和3个不同FET的温度,同样地,板2和3也有温度。我将数据读入一个dataframe,并希望用相同的颜色为每个测试板绘制数据,但用不同的标记为板上的每个设备绘制数据。例如,板1的所有测量值都是蓝色的,PCB温度使用标记'+',FET1使用标记'V'等。 我像这样读取文件: 并创建一个数组。 然后我绘制不同的列: 编辑 在@ilke4