首页 文章

修改R / ggplot2中堆积区域图的图例和标签

提问于
浏览
0

编辑:Haboryme在评论中解决;问题是我使用xlab和ylab而不是x和y作为labs()的关键字参数的名称(解释图形标签),以及在第二次调用aes()时多余使用color =(解释持久性)原始传说) .

我想用R和ggplot2从一些CSV数据制作堆积区域图表 . 例如:

In file "test.csv":
Year,Column with long name 1,Column with long name 2
2000,1,1
2001,1,1.5
2002,1.5,2

我运行此代码(模仿this GIS.SE question的答案):

library(ggplot2)
library(reshape)
df <- read.csv('test.csv')
df <- melt(df, id="Year")
png(filename="test.png")
gg <- ggplot(df,aes(x=as.numeric(Year),y=value)) +
    # Add a new legend
    scale_fill_discrete(name="Series", labels=c("Foo bar", "Baz quux")) +
    geom_area(aes(colour=variable,fill=variable)) +
    # Change the axis labels and add a title
    labs(title="Test",xlab="Year",ylab="Values")
print(gg)
dev.off()

结果,在文件“test.png”中:

Stacked-area plot with wrong axis labels and extra legend

问题:我尝试更改轴标签被忽略了,我的新图例(从R Cookbook's suggestions借来的代码)被添加到(奇怪的重新着色)默认值中 . (R Cookbook提供的其他解决方案,例如调用指南(fill = FALSE),或多或少都做同样的事情 . )我宁愿不使用编辑我的数据帧的解决方法(例如剥离read.csv的句点( )替换列 Headers 中的空格),以便默认标签变得正确 . 我该怎么办?

1 回答

  • 2
    ggplot(df,aes(x=as.numeric(Year),y=value)) +
      scale_fill_discrete(name="Series", labels=c("Foo bar", "Baz quux")) +
      geom_area(aes(fill=variable)) +
      labs(title="Test",x="Year",y="Values")
    

    aes()aes() 中的参数 colour 仅为轮廓着色,因此不会在此处添加任何内容 .

相关问题