title: Legend with discrete classes in ggplot
body: <p>I have a dataframe <code>df</code></p>
  
  <pre><code>df&lt;-structure(list(X = c(540.857881018969, 179.756453922596, 375.597673455575, 
  -24.7802579900034, 435.072227193852, 316.91305374488, 385.910199259729, 
  118.282069554042, 47.0931945371692, 46.8541543075746, -1.34917072989697, 
  -7.85914134272889, -74.1514974421857, -14.1349095526425, -180.103770130757, 
  -138.258618377921, 189.011576650288, 69.2480232224876, 42.356103377609, 
  -330.116265944969, 12.2073132306264, 82.0963304851313, -76.2883430762099, 
  13.7563014075505, 286.364096895997, 238.289414874803, 192.304857815893, 
  196.85181686938, 545.585335607164, 380.551416666209, 285.533878238757, 
  349.173312050698, 234.149820388793, 182.680602233473, 123.508718623119, 
  -59.3666813922188, 309.812271637758, 378.745487723212, 383.286192402579, 
  407.250999438653, 968.521681377846, 168.221917301957, 308.817578621267, 
  187.43921153459, 219.229124870899, 273.756349813256, 330.797398870288, 
  310.938292903419, 285.256002320225, 404.534158133551, 298.161606939762, 
  96.4609965966811, 237.259654760246, 410.903483047603, 453.107209854966, 
  476.020674679612, 390.865258755938, -148.590524527974, 109.883635942258, 
  78.869912902272, 782.478670456904, 245.257050602357, 308.573221705999, 
  568.136911803784, 163.617826469925, 210.109579924637, 175.657357919781, 
  175.760684810558, -254.181869342232, 288.452497381572), Y = c(436.783385497984, 
  55.1825021383702, 526.4133417369, 560, 391.49284084118, -519.814235572849, 
  11.5525291214872, 162.441016515717, 39.0395567645998, -70.4910326673707, 
  17.1155716306239, -106.326129257097, -94.9308303585276, -66.4285516217351, 
  -144.929052323413, -220.613145695315, 157.129576861289, 44.1257786633602, 
  46.8326830295943, -146.719591499443, 30.8043649939355, -4.10548956954153, 
  -108.258462657337, 90.3369144331664, 126.866108251153, 42.9489971246803, 
  690.903947139159, -45.4886732113082, 483.932040393885, 618.930183215125, 
  590.754048774834, 82.1480000555981, 76.8863707484328, 404.007940533033, 
  202.629066249886, -46.9675149230141, 557.939170770813, 333.76992898155, 
  300.979565786038, 224.256197650044, 148.719307398695, 201.195892312115, 
  466.727302447427, 552.762670615377, 595.145436977735, 481.359543363331, 
  467.379381521489, 279.980726677847, 545.324660883673, 444.812610935212, 
  308.198167469197, -638.973101716489, 292, 331.193419647713, 181.896345832773, 
  629.214319321327, -176.181996958815, 214, 59.1716887350485, -77.1223124726675, 
  -186.42650026083, 279.123776521767, 515.533437888983, 595.091753601562, 
  367.15020653978, 713.607404187601, 268.681242669467, 239.81099676255, 
  91.8453621773515, 246.686055020047), A = c(98.5, 77, 63.2222222222222, 
  97, 52.5, 3.5, 15.5, 71, 161.833333333333, 153.5, 73, 39, 40, 
  23, 14, 5.5, 78, 129.5, 73.5, 4, 100, 10, 3, 30, 65.5, 198, 26, 
  45.5, 20, 42.5, 111.5, 44, 68.5, 102.5, 39.1111111111111, 83.8, 
  136, 28.6666666666667, 31.5, 56.5, 101, 39.25, 108.5, 52.1666666666667, 
  54.5, 9.5, 13, 8.5, 8, 52.1428571428571, 66.5, 1, 42, 45, 106, 
  19, 202.571428571429, 200, 36.6, 83.75, 2, 33, 21.2, 69, 67.5, 
  14, 83, 16, 4, 99)), .Names = c("X", "Y", "A"), row.names = c(1L, 
  2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 
  16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 
  29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 
  42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L, 52L, 53L, 54L, 
  55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 
  68L, 69L, 71L), class = "data.frame", na.action = structure(c(70L, 
  72L, 73L, 74L, 75L, 76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 
  85L, 86L, 87L, 88L, 89L, 90L), .Names = c("70", "72", "73", "74", 
  "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", 
  "86", "87", "88", "89", "90"), class = "omit"))
  </code></pre>
  
  <p>I am plotting <code>Y</code> against <code>X</code>  with ggplot in a simple scatterplot. However I also want to add a color scheme and a legend based on the variable <code>A</code>. The idea is to have four classes (e.g. 0-50, 50-100, 100-150 and 150-200) in the legend.</p>
  
  <p>I only managed to get a gradient legend so far as such: </p>
  
  <pre><code>library(ggplot2)
      ggplot(df, aes(x=X, y=Y, colour=A))+
        geom_point(shape=3)+
        geom_abline(slope=1)+
        theme_bw(base_size = 14, base_family = "Helvetica") + 
        theme(panel.grid = element_line(colour="grey", size=0.5),
              axis.text.x = element_text(hjust = 1),
              legend.position="bottom", 
              legend.box="horizontal",
              legend.key = element_blank(),
              legend.text=element_text(size=12))+
        xlab("Predicted")+
        ylab("Observed")+
        scale_colour_gradient(name= "Stand age", low= "#67a9cf", high ="#ef8a62")+
        guides(colour = guide_colourbar(title.position="top", title.hjust = 0.5),
               size = guide_legend(title.position="top", title.hjust = 0.5))
  </code></pre>
  
  <p>In addition, I would like to have the legend box in the lower right corner inside the panel. Anyone knows how to do it? </p>