Question

I have a data frame, where I am talking about different flows of water at a dam (water units are kcfs—1000 cubic feet per second—if anyone is interested)

Call it df4plot

    date         kcfs    Flowtype
    10/1/2010        50     Power
    10/1/2010        10     Spill_Overgen
    10/1/2010         8         Spill_Force
    10/2/2010        52     Power
    10/2/2010         7     Spill_Overgen
    10/2/2010        10     Spill_Force     

(there are 3x365 rows in the data frame)

So what I want to do is make an aggregated area graph that shows each of these flows

p <- ggplot(data = df4plot, aes(date,kcfs)) +
geom_area(aes(colour = Flowtype, fill=Flowtype), position = “stack”) 

I want to control the colors used, so I added

plot_colors_aggregate <- c("forestgreen","lightsalmon","dodgerblue")
p <- p +
scale_color_manual(values = plot_colors_aggregate) +
scale_fill_manual(values = plot_colors_aggregate)

Now I want to add a dashed line, showing the maximum turbine capacity—the flow limits for power generation—that vary by month. I have a separate dataframe for this (365 rows long), df4FGline

    Date    FGlimit
    10/1/2010   52
    10/2/2010   52
     …
    11/1/2010   60
    11/2/2010   60
    ...
    Etc

So now I have

p <- p + 
geom_line(data = df4FGline, aes(x=date,y=FGlimit), colour = “darkblue”, linetype = “dashed”)

p

The legend is currently just the three blocks for the three types of Flowtype. I’d like to add the dashed line for the flow gate limits to the bottom, but I can’t get it to show up there.

It is probably related to my incomplete understanding of aes (help(aes) is AMAZINGLY unhelpful).

I’ve tried something similar to this and something similar to this, but since I’m only trying to add 1 line to a pre-existing legend, maybe?, this is not working for me.

I tried adding “legend = TRUE” inside the parentheses for the geom_line, but it put a dashed line inside each color box in the legend, AND created a 4th entry for the legend, but offset from the rest of the legend (below and to the right)... ARG!

I swear I have the book on order... any help you can share so that I understand this aesthetic thing and how it relates to the legend a little better, I'd be extremely grateful.

edited for typo

Was it helpful?

Solution

This should help:

df <- data.frame(x = 1:10,y = 1:10)
ggplot(df,aes(x = x,y = y)) + 
   geom_line(aes(linetype = "dashed")) + 
   scale_linetype_manual(name = "Linetype",values = "dashed")
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top