本文介绍了ggplot2:如何显示图例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用 code> 。




I made a simple classic plot with ggplot2 which is two graphs in one. However, I'm struggling in showing the legend. It's not showing the legend. I didn't use the melt and reshape way, I just use the classic way. Below is my code.

 df<-read.csv("testDataFrame.csv")
 graph<- ggplot(df,aes(A)) +

 geom_line(aes(y=res1), colour = "1")+
 geom_point(aes(y=res1),size = 5,shape=12)+

 geom_line(aes(y=res2), colour = "2")+
 geom_point(aes(y=res2), size = 5, ,shape=20)+

 scale_colour_manual(values=c("red","green"))+
 scale_x_discrete (name="X axis")+
 scale_y_continuous(name="Y-axis")+
 ggtitle("Test")+
 #scale_shape_discrete(name  ="results",labels=c("Res1", "Res2"),solid = TRUE)
 print(graph)

the data frame is:

 A,res1,res2
 1,11,25
 2,29,40
 3,40,42
 4,50,51
 5,66,61
 6,75,69
 7,85,75

Any suggestion on how to show the legend for the above graph?

解决方案

In ggplot2, legends are shown for every aesthetic (aes) you set; such as group, colour, shape. And to do that, you'll have to get your data in the form:

A variable value
1     res1    11
...    ...    ...
6     res1    85
7     res2    75

You can accomplish this with reshape2 using melt (as shown below):

require(reshape2)
require(ggplot2)

ggplot(dat = melt(df, id.var="A"), aes(x=A, y=value)) +
      geom_line(aes(colour=variable, group=variable)) +
      geom_point(aes(colour=variable, shape=variable, group=variable), size=4)

For example, if you don't want colour for points, then just remove colour=variable from geom_point(aes(.)). For more legend options, follow this link.

这篇关于ggplot2:如何显示图例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-22 23:59