我有以下数据框
# Data
Year <- c(1500,1750,2000)
Country1 <- c(10,20,30)
Country2 <- c(30,50,40)
df <- data.frame(Year, Country1, Country2)
我用
绘图# Plot
require(ggplot2)
myplot <- ggplot(df, aes(Year)) + geom_line(aes(y=Country1)) + geom_line(aes(y=Country2)) + labs(y = "Cows")
一切都好。然后我想添加线条&#39;标签。我试试
# Add labels
require(directlabels)
direct.label(myplot)
抛出
Error in direct.label.ggplot(myplot) :
Need colour aesthetic to infer default direct labels.
我想问题是我的数据框形状不适合ggplot
,因为我的标签是列名。
我应该重塑我的数据框吗?怎么样?
答案 0 :(得分:0)
最简单的重塑形式(在我看来)是使用reshape2
包
df<-data.frame(
Year = c(1500, 1750, 2000),
Country1 = c(10, 20, 30),
Country2 = c(30, 50, 40)
)
#reshape
library(reshape2)
mm<-melt(df, id.var="Year")
#plot
myplot2 <- ggplot(mm, aes(Year, value, color=variable))+ geom_line() + labs(y = "Cows")
#add labels
library(directlabels)
direct.label(myplot2)
这样我们就可以提供适当的颜色&#34; direct.labels
函数正在寻找的审美。