简体   繁体   English

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

[英]Bubble Plot of Negative and Positive values in space ggplot2 R

I would like to make a bubble plot using ggplot2 in R. My code and data are found below. 我想在R中使用ggplot2进行气泡图绘制。我的代码和数据如下。 Please leave the colors as they are. 请保持原样。 I am having difficulties in scaling positive and negative values equally. 我在平等地缩放正值和负值时遇到困难。 For example, -3 is scaled smaller than +3. 例如,-3的缩放比例小于+3。 I would like negatives and positives to be scaled proportionately irrespective of sign. 我希望无论符号如何,负片和正片都应按比例缩放。

Identify negative from positive values using some kind of outline linetype for bubbles and include it in the legend. 使用某种气泡的轮廓线型从正值中识别负值,并将其包括在图例中。

Also remove the "Mean" part of the legend. 同时删除图例的“均值”部分。

Thanks very much for your great help. 非常感谢您的大力帮助。

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

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))


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

use abs() 使用abs()

eg instead of size=Mean use size=abs(Mean) 例如,代替size=Mean使用size=abs(Mean)

Then, you can track the sign using shape (or some other aesthetic, but color and size are already taken) 然后,您可以使用形状(或其他美学效果,但已经采用颜色和大小)来跟踪标志

replace: 更换:

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

with the single line 单行

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

If you'd like, you can also add lines such as 如果需要,您还可以添加以下行

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

    guides(size=FALSE)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM