ggplot自定义格式错误

时间:2015-11-15 07:11:28

标签: r ggplot2 customization legend

我正在使用一个大型数据库(数万个)点来处理一组气候变量,我想在一个散点图中绘制并按Forest.type进行分组。我还有一组网站(site1-7),我想在同一个图表上绘制。 Sites1-7只是单个点,每个点代表Forest.type中不同的因子级别,而其他级别每个都有数千个点。

我遇到的问题是,当我绘制点图时,Sites1-7的图形不正确(即点不对应数据)或者我格式化图形不正确。我花了很多时间试图找到我的错误,并以不同的方式修改下面的图表代码,但还没有能够这样做。

我的数据的一个子集(combo.df3)如下所示。

            CID Forest.type    PptAnn   TmaxAnn
1      61228534       site1  62744.88  783.0098
2      61228535       site2  79771.21  800.0628
3      61228536       site3 129822.54  831.5902
4      61228537       site4 130943.42  683.3425
5      61228538       site5  96531.09  902.3692
6      61228539       site6  98594.19  973.1728
7      61228540       site7  91160.96 1044.0000
11000       778        pipo  41832.00 1382.0000
21000      3269        pipo  41829.00 1074.0000
31000      3427        pipo  45357.00 1119.0000
993     1664171        pipo  41739.00 1309.0000
1993    3877208        pipo  56711.00 1103.0000
2993    6076595        pipo  46701.00 1166.0000
3993    7964984        pipo  72754.00 1417.0000
4993   10118766        pipo  61969.00 1083.0000
40993  12452128       dryMC  91025.00  835.0000
41993  24625242       dryMC  62317.00 1176.0000
42993  37503245       dryMC  52043.00  903.0000
43993  49283896       dryMC  40195.00 1124.0000
44993  61171523       dryMC  61583.00  987.0000
80993   8887400     moistMC 116187.00  975.0000
81993  17990513     moistMC  81670.00 1091.0000
82993  27239046     moistMC  83496.00 1316.0000
83993  36961854     moistMC  72694.00 1502.0000
84993  45104630     moistMC  66103.00 1038.0000
120993   253336        cold  40416.00 1065.0000
121993   697374        cold  64542.00  797.0000
122993  1007005        cold  55362.00  793.0000
123993  1467764        cold  72555.00 1407.0000
124993  1759938        cold  66139.00  741.0000
160993   434320       aspen  33372.00 1239.0000
161993   999534       aspen  52696.00  922.0000
162993  1953326       aspen  84496.00 1059.0000
163993  3548225       aspen  87807.00  653.0000
164993  4941243       aspen  60323.00 1001.0000

我的图表代码如下:

ggplot(data=combo.df3, aes(x=PptAnn/1000, y=TmaxAnn/100, group=rev(Forest.type), size=rev(Forest.type))) + 
  geom_point(aes(color=rev(Forest.type))) + 
  scale_alpha_manual(values=c(rep(1, times=7), rep(0.5, times=5)), guide="none") + 
  scale_size_manual(values=rev(c(rep(5, times=7), rep(1, times=5))), guide="none") + 
  scale_color_manual(values = rev(c('black', 'black', 'black', 'black', 'black', 'black', 'black', 'gold1', 'red3', 'green4', 'darkblue', 'olivedrab3')), guide="none") + 
  xlab("Annual Precipitation (cm)") + ylab(expression(paste("Annual Tmax ( ",degree,"C", ")"))) + 
  guides(colour = guide_legend(override.aes = list(size=5), title=NULL)) + 
  theme(axis.text.x = element_text(colour="black", size=rel(2)), 
        axis.text.y = element_text(colour="black", size=rel(2)), 
        axis.title.x = element_text(face="bold",colour="black", size=rel(2), vjust=-.5), axis.title.y = element_text(face="bold",colour="black", size=rel(2)), 
        legend.text = element_text(size=rel(1.5)), legend.title = element_text(size=rel(1.5)),
        legend.position = c(0.85, 0.7), legend.key = element_rect(fill = 'white'),
        panel.background = element_rect(fill="white", colour="black"), plot.background = element_blank(), 
        panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.border = element_blank())

此代码生成以下图形。

enter image description here

仔细观察,大黑点与site1-7的数据不符,正如我想的那样。

我可能在代码中遇到与此问题无关的错误,但我还没有处理过。关于导致此错误的绘图/格式错误的哪些方面的想法?

我还尝试通过将sites1-7分成单独的数据框并添加额外的geom_point参数来绘制图形并格式化这些图来绘制图形。这正确地绘制了所有点,但是我在理解如何在同一图表上格式化来自两个单独数据集的图例时遇到了问题。似乎最好的解决方案是将所有数据放在一个数据帧中。

0 个答案:

没有答案