我有一个7列的矩阵,大约30行。前两列是字符串的分类变量,第一列是地名(例如:旧金山),第二列是Y / N值。每个其他列对应于一年(2006年,2008年等),并包含与年份(col)和地点(行)对应的值。
我需要制作一个每行有一行的图,它们根据地名进行着色(如果有两行都属于旧金山,它们应该是相同的颜色),并且根据虚线或实线表示到Y / N值。
我在R工作 - 我应该使用ggplot,matplot,plot还是其他情节包?我几乎可以在matplot中使用它,但是获得颜色和潇洒工作的微妙之处似乎是不可能的。
这里或多或少的数据是什么样的(通常有NaN值):
colnames - location,YorN,2006,2008,2009,2011,2012
第1行 - "旧金山"," Y",0.1,5.2,3.5,6,NaN
第2行 - "旧金山"," N",3,7.1,2.2,NaN,1
第3行 - "纽约"," Y",4.2,4.5,NaN,1.1,2
第4行 - "纽约"," N",2,NaN,2.1,4.9,6.7
答案 0 :(得分:1)
dd <- read.csv(text='
location, YorN, 2006, 2008, 2009, 2011, 2012
"San Francisco", "Y", 0.1, 5.2, 3.5, 6, NaN
"San Francisco", "N", 3, 7.1, 2.2, NaN, 1
"New York", "Y", 4.2, 4.5, NaN, 1.1, 2
"New York", "N", 2, NaN, 2.1, 4.9, 6.7')
library("ggplot2"); theme_set(theme_bw())
library("reshape2")
ddm <- melt(dd) ## uses factor columns as ID variables
## convert year back to numeric (alternatively, use check.names=FALSE
## in read.csv())
ddm <- transform(ddm,year=as.numeric(gsub("^X","",variable)))
ggplot(ddm,aes(x=year,y=value))+
geom_line(aes(colour=location,linetype=YorN))