这是我的csv文件中的数据:
Tx, Varx, Scale, Val1, Val2
A, VAR1, 5, 516, 2
A, VAR1, 10, 447.4, 5
A, VAR1, 15, 294, 8
A, VAR1, 20, 217.2, 12
A, VAR2, 5, 675.4, 4
A, VAR2, 10, 423.2, 9
A, VAR2, 15, 276, 12
A, VAR2, 20, 200, 15
B, VAR1, 5, 624, 6
B, VAR1, 10, 465.2, 13
B, VAR1, 15, 315.2, 16
B, VAR1, 20, 234.8, 18
B, VAR2, 5, 518.8, 8
B, VAR2, 10, 443, 17
B, VAR2, 15, 278.4, 20
B, VAR2, 20, 217.8, 24
我想在Varx和Tx值之间绘制线条(不仅仅是点)。我试图使用此代码进行绘图:
data_table = read.csv("PATH/file.csv",check.names=FALSE,header=T,sep=",")
data_table$NScale <- as.numeric(as.character((data_table$Scale)))
ggplot(data_table, aes(x=NScale, y=Val2, colour=Tx, shape=Varx, linetype=Varx, group=Tx)) + geom_point()
当我尝试绘制用于连接蓝色三角形,红色三角形,红色圆圈,蓝色圆圈的线条时,使用geom_line(),geom_path()会显示错误消息:
Error: geom_path: If you are using dotted or dashed lines, colour, size and linetype must be constant over the line
如何按形状和颜色创建分组线?我尝试了几种方法,但仍然没有得到它。有什么问题?
答案 0 :(得分:1)
你应该尝试制作一个新的&#34;分组&#34;变量和分离你如何做&#34;点&#34;和&#34;线&#34;。
我已经使用dplyr
完成了此操作,但您也可以使用基数R来完成此操作:
library(dplyr)
data_table <- data_table %>%
rowwise() %>%
mutate(TxVarxgroup = paste0(Tx, Varx, collapse=""))
ggplot(data_table) +
geom_point(aes(x=NScale, y=Val2, colour=Tx, shape=Varx)) +
geom_line(aes(x=NScale, y=Val2, group=TxVarxgroup))