空间ggplot2 R中负值和正值的气泡图

时间:2014-05-21 15:50:35

标签: r plot ggplot2 spatial

我想在R中使用ggplot2制作气泡图。我的代码和数据如下所示。 请保持颜色不变。我在平等地衡量积极和消极价值方面遇到了困难。例如,-3的缩放比小于+3。无论符号如何,我都希望负面和正面按比例缩放。

使用气泡的某种轮廓线型识别正值,并将其包含在图例中。

同时删除" Mean"传奇的一部分。

非常感谢你的大力帮助。

#=====================================================================

library(ggplot2) 
if (dev.cur() == 1) x11(width=8,height=6) 
par(mfcol=c(1,1)) 
p<-ggplot(site.resiudal, aes(x=Eastings, y=Northings, size=Mean,label=site.resiudal$Site,legend = FALSE))+ 
#theme(legend.position="none")+
geom_point(shape=21)+ 
geom_point(aes(colour = factor(Region)))+ 
scale_area(range=c(1,15))+ 
scale_alpha(guide = 'none')+
scale_x_continuous(name="Longitude", limits=c(-120,-95))+ 
scale_y_continuous(name="Latitude", limits=c(48,61))+ 
geom_text(size=4)+
scale_colour_manual(name="Region",labels = c("A", "B","C","D", "E"),values = c("1" =   "firebrick3","2" = "palegreen4","3" = "sandybrown","4" = "red","5" = "gray0"))+
theme(legend.title = element_text(colour="black", size=16, face="plain"))+
theme(legend.text = element_text(colour="black", size = 16, face = "plain"))

p

#Data[["sign"]] = ifelse(Data[["Mean"]] >= 0, "positive", "negative")

#=================================================

structure(list(Site = structure(c(101L, 102L, 105L, 107L, 108L, 
110L, 111L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 
13L, 14L, 16L, 20L, 47L, 52L, 53L, 55L, 91L, 92L, 93L, 94L, 95L, 
96L, 99L, 15L, 17L, 18L, 19L, 21L, 114L, 23L, 26L, 36L, 59L, 
60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 
73L, 74L, 75L, 76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 
86L, 87L, 88L, 89L, 98L, 100L, 103L, 104L, 106L, 109L, 112L, 
113L, 115L, 116L, 117L, 119L, 42L, 44L, 46L, 48L, 49L, 50L, 51L, 
54L, 56L, 57L, 58L, 90L, 97L, 118L, 120L, 22L, 24L, 25L, 27L, 
28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 37L, 38L, 39L, 40L, 41L, 
43L, 45L), .Label = c("G100", "G101", "G102", "G103", "G104", 
"G105", "G106", "G107", "G108", "G109", "G110", "G111", "G112", 
"G113", "G114", "G115", "G116", "G117", "G118", "G119", "G120", 
"GG10", "GG11", "GG12", "GG13", "GG14", "GG15", "GG16", "GG17", 
"GG18", "GG19", "GG20", "GG21", "GG22", "GG23", "GG24", "GG25", 
"GG26", "GG27", "GG28", "GG29", "GG30", "GG31", "GG32", "GG33", 
"GG34", "GG35", "GG36", "GG37", "GG38", "GG39", "GG40", "GG41", 
"GG42", "GG43", "GG44", "GG45", "GG46", "GG47", "GG48", "GG49", 
"GG50", "GG51", "GG52", "GG53", "GG54", "GG55", "GG56", "GG57", 
"GG58", "GG59", "GG60", "GG61", "GG62", "GG63", "GG64", "GG65", 
"GG66", "GG67", "GG68", "GG69", "GG70", "GG71", "GG72", "GG73", 
"GG74", "GG75", "GG76", "GG77", "GG78", "GG79", "GG80", "GG81", 
"GG82", "GG83", "GG84", "GG85", "GG86", "GG87", "GG88", "GG89", 
"GG90", "GG91", "GG92", "GG93", "GG94", "GG95", "GG96", "GG97", 
"GG98", "GG99", "GGG1", "GGG2", "GGG3", "GGG4", "GGG5", "GGG6", 
"GGG7", "GGG8", "GGG9"), class = "factor"), Name = structure(c(53L, 
87L, 29L, 92L, 36L, 76L, 102L, 103L, 119L, 2L, 9L, 11L, 45L, 
47L, 49L, 54L, 90L, 30L, 105L, 66L, 78L, 107L, 81L, 42L, 41L, 
43L, 59L, 110L, 24L, 27L, 56L, 61L, 64L, 118L, 40L, 21L, 44L, 
70L, 108L, 25L, 58L, 98L, 83L, 5L, 19L, 26L, 31L, 38L, 55L, 60L, 
71L, 74L, 75L, 85L, 95L, 120L, 109L, 1L, 67L, 20L, 50L, 63L, 
106L, 111L, 116L, 62L, 6L, 99L, 114L, 73L, 84L, 89L, 93L, 97L, 
115L, 80L, 10L, 12L, 88L, 79L, 15L, 17L, 33L, 35L, 94L, 100L, 
3L, 16L, 37L, 101L, 117L, 8L, 39L, 48L, 86L, 113L, 23L, 13L, 
69L, 96L, 104L, 32L, 65L, 82L, 14L, 22L, 18L, 46L, 68L, 72L, 
77L, 91L, 112L, 4L, 7L, 28L, 51L, 57L, 52L, 34L), .Label = c("ANEROID", 
"ARBORG", "ATHABASCA", "BANFF", "BANGOR", "BATTLEFORD", "BEAVER MINES", 
"BEAVERLODGE", "BERENS RIVER", "BIRTLE", "BISSETT", "BRANDON", 
"BUFFALO NARROWS", "CALGARY", "CALMAR", "CAMPSIE", "CAMROSE", 
"CARWAY", "CEYLON", "CHAPLIN", "CHURCHILL", "CLARESHOLM", "COLD LAKE", 
"COLLINS BAY", "CORONATION", "COTE", "CREE LAKE", "CROWSNEST", 
"CYPRESS RIVER", "DAUPHIN", "DAVIDSON", "DRUMHELLER", "EDMONTON", 
"EDSON", "ELK POINT", "EMERSON AUT", "ENILDA-BERG", "ESTEVAN", 
"FAIRVIEW", "FLIN FLON", "FORT CHIPEWYAN", "FORT MCMURRAY", "FORT VERMILION", 
"GILLAM", "GIMLI", "GLEICHEN", "GRAND RAPIDS", "GRANDE PRAIRIE", 
"GREAT FALLS", "HIGH POINT", "HIGHWOOD", "HINTON VALLEY", "HUDSON BAY", 
"INDIAN BAY", "INDIAN HEAD", "ISLAND FALLS", "JASPER WARDEN", 
"JENNER", "KEG RIVER RS", "KELLIHER", "KEY LAKE", "KINDERSLEY", 
"KLINTONEL", "LA RONGE", "LACOMBE 2", "LANGRUTH WEST", "LEADER", 
"LETHBRIDGE", "LOON LAKE", "LYNN LAKE", "MANOR", "MEDICINE HAT", 
"MELFORT", "MOOSE JAW", "MOOSOMIN", "MORDEN", "MOUNTAIN VIEW", 
"NEEPAWA MURRAY", "NINETTE", "NIPAWIN", "NORWAY HOUSE", "OLDS", 
"ONEFOUR", "OUTLOOK", "PASWEGIN", "PEACE RIVER", "PELLY", "PIERSON", 
"PILGER", "PINAWA WNRE", "PINCHER CREEK ", "PORTAGE PRAIRIE", 
"PRINCE ALBERT", "RANFURLY", "REGINA", "ROCKY MT HOUSE ", "SASKATOON", 
"SCOTFIELD", "SCOTT", "SION", "SLAVE LAKE", "SPRAGUE", "STEINBACH", 
"STETTLER NORTH", "SWAN RIVER", "SWIFT CURRENT", "THE PAS", "THOMPSON", 
"TONKIN", "URANIUM CITY ", "VAL-MARIE", "VAUXHALL", "WABASCA RS", 
"WASECA", "WASKESIU LAKE", "WEST POPLAR", "WHITECOURT", "WHITESAND DAM", 
"WINNIPEG", "YELLOW GRASS"), class = "factor"), Mean = c(-0.020525899, 
0.333863493, 0.210353772, NA, NA, 0.093520458, 0.341295298, NA, 
-0.175074657, 0.09834825, 0.075610648, NA, -0.117503802, 0.18309367, 
0.25246942, 0.221329766, 0.072167004, -0.094766032, NA, NA, 0.19783711, 
-0.166351357, -0.0996169, -0.038555432, -0.028092042, 0.297855371, 
0.108263891, 0.002057761, 0.327731415, NA, 0.180100638, 0.193837736, 
-0.003306948, 0.178881894, 0.3655509, -0.235975798, -0.176154056, 
-0.080433735, -0.110955273, -0.228010105, 0.048103255, -0.116681527, 
-0.073042421, NA, NA, 0.035356012, 0.297171565, -0.197834719, 
0.036412958, 0.055218077, NA, -0.236229087, 0.265211081, 0.271625885, 
-0.293179359, 0.113744571, -0.207770026, 0.100471248, -0.071569464, 
NA, NA, NA, -0.052716493, 0.057385851, 0.090340517, -0.30456625, 
-0.234420722, 0.082287977, 0.009973663, NA, -0.06405062, 0.074703356, 
-0.208329196, -0.272401078, 0.217991554, -0.043619919, -0.208901155, 
-0.020022401, 0.111495318, NA, 0.38239749, 0.199136959, -0.177740258, 
NA, 0.147515615, 0.309306538, 0.298741467, 0.068170296, NA, -0.02102765, 
0.001754313, -0.010196512, 0.108254156, -0.228183063, -0.196261239, 
NA, -0.167054722, 0.039949534, 0.154337034, -0.020855461, 0.136010278, 
NA, 0.096997744, NA, -0.241963754, 0.660176529, 0.423554314, 
0.190305726, -0.210778787, -0.261148915, NA, 0.054264129, -0.098706619, 
-0.138776994, NA, NA, NA, -0.113823745, 0.373292721, -0.047060083 
), Eastings = c(-102.5800018, -101.8700027, -99.08000183, -98.26999664, 
-97.23000336, -98.08000183, -95.59999847, -96.76999664, -97.23000336, 
-97.08000183, -97.02999878, -95.69999695, -97.01999664, -99.27999878, 
-96, -95.19999695, -96.06999969, -100.0500031, -101.2300034, 
-98.80000305, -99.56999969, -101.0999985, -97.84999847, -111.2200012, 
-111.1200027, -116.0299988, -117.6200027, -108.4800034, -103.6999969, 
-107.1299973, -102.3499985, -105.6200027, -105.2699966, -103.1500015, 
-101.8799973, -94.06999969, -94.72000122, -101.0800018, -97.87000275, 
-111.4499969, -111.1999969, -111.3499985, -110.4700012, -102.2799988, 
-104.6500015, -101.7799988, -105.9800034, -102.9700012, -103.6500015, 
-103.75, -102.0999985, -105.5500031, -101.6699982, -103.9199982, 
-104.6699982, -104.1800003, -102.2300034, -107.3000031, -109.5, 
-106.6500015, -107.9300003, -108.9199982, -107.7300034, -107.8499985, 
-106.3799973, -109.1800003, -108.25, -108.8300018, -109.4000015, 
-104.5999985, -107.0500031, -105.1500015, -105.6699982, -106.7200012, 
-106.0699997, -104, -101.0500031, -99.94999695, -101.2699966, 
-99.65000153, -113.8499985, -112.8199997, -113.5800018, -111.0699997, 
-111.7300034, -114.1200027, -113.2799988, -114.6800003, -116.3000031, 
-114.7799988, -115.7799988, -119.4000015, -118.5299988, -118.8799973, 
-117.4499969, -113.8300018, -110.2799988, -108.4300003, -109.0999985, 
-114.9199982, -112.7200012, -112.8700027, -113.75, -114.0999985, 
-114.0199966, -113.7300034, -113.3799973, -113.0500031, -112.8000031, 
-110.7200012, -113.6299973, -113.9800034, -112.1299973, -115.5500031, 
-114.1800003, -114.4800034, -114.3700027, -118.0299988, -117.5299988, 
-116.4499969), Northings = c(52.88000107, 52.08000183, 49.54999924, 
49.95000076, 49, 49.18000031, 49.02000046, 49.52999878, 49.91999817, 
50.93000031, 52.34999847, 51.02999878, 50.63000107, 53.15000153, 
50.47000122, 49.61999893, 50.18000031, 51.09999847, 52.11999893, 
50.41999817, 50.15000153, 53.97000122, 53.97000122, 56.65000153, 
58.77000046, 58.38000107, 57.75, 59.56999969, 58.18000031, 57.34999847, 
55.52999878, 57.25, 55.15000153, 56.22999954, 54.77000046, 58.72999954, 
56.34999847, 56.86999893, 55.79999924, 52.06999969, 50.72000122, 
51.58000183, 49.11999893, 50.90000153, 49.38000107, 51.52000046, 
51.27000046, 49.22000122, 50.54999924, 51.25, 49.61999893, 50.33000183, 
50.13000107, 51.97999954, 50.43000031, 49.81999969, 51.20000076, 
49.72000122, 50.90000153, 50.47000122, 50.97999954, 49.68000031, 
50.27000046, 49.36999893, 49, 51.52000046, 52.77000046, 52.36999893, 
53.13000107, 52.81999969, 51.47999954, 52.41999817, 53.22000122, 
52.16999817, 53.91999817, 53.33000183, 50.43000031, 49.91999817, 
49.18000031, 49.41999817, 53.27999878, 53.02999878, 53.31999969, 
53.88000107, 53.41999817, 53.88000107, 54.72000122, 54.13000107, 
55.41999817, 55.27999878, 54.15000153, 55.20000076, 56.08000183, 
55.18000031, 56.22999954, 55.97000122, 54.41999817, 55.83000183, 
54.04999924, 52.41999817, 52.33000183, 51.47000122, 52.45000076, 
51.77999878, 51.11999893, 49.93000031, 49, 50.88000107, 49.63000107, 
50.02000046, 49.13000107, 49.52000046, 50.04999924, 51.20000076, 
49.47000122, 49.63000107, 50.54999924, 52.93000031, 53.40000153, 
53.58000183), Region = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L)), .Names = c("Site", 
"Name", "Mean", "Eastings", "Northings", "Region"), class = "data.frame", row.names =      c(NA, 
-120L))


#============================================

1 个答案:

答案 0 :(得分:1)

使用abs()

例如 而不是size=Mean使用size=abs(Mean)

然后,您可以使用形状(或其他一些美学,但已经采取颜色和大小)跟踪标志

取代:

 geom_point(shape=21)+ 
 geom_point(aes(colour = factor(Region))) + 

单行

geom_point(aes(shape=factor(sign(Mean)), colour = factor(Region))) + 

如果您愿意,还可以添加

等行
    scale_shape_discrete(name="Mean Is", breaks=c(-1, 1), labels=c("Negative", "Positive"))

    guides(size=FALSE)