Добавление легенды при отображении остатков в ggplot - PullRequest
1 голос
/ 27 февраля 2020

Я пытался добавить легенду для остатков, но не знаю, где разместить код, чтобы он работал.

Вот карта остатков, но без легенды:

ggplot(lat_long, aes(lat_long$INTPTLON10, lat_long$INTPTLAT10)) + 
  geom_polygon(data = states, aes(x=long, y = lat, group = group), color= "darkgray", fill="gray") + 
  coord_fixed(1.3)+ #keeps the aspect ratio 
  geom_point(col=c("blue", "red")[sign(full_resid)/2+1.5], #assigns color of dots if +/- residual
             pch=19,cex=abs(full_resid), #assigns size of dots
             show.legend = T) + #can't figure out how to create the legend
  theme_map()


Синие точки - это отрицательные остатки, а красные - положительные остатки. Размер - насколько мал / велик остаток. Возможно, наличие двух разных цветов не обязательно, но может быть полезно иметь легенду, показывающую размер точек.

Map of residuals

Заранее спасибо! Редактировать: вот данные! (Дайте мне знать, если это не лучший способ поделиться)

> write.csv(lat_long)
"","X1","NAME10","INTPTLAT10","INTPTLON10"
"1",1,"Hartford, CT",41.740122,-72.69883
"2",2,"Indianapolis, IN",39.8112618,-86.1455205
"3",3,"Seattle, WA",47.4684093,-122.2746615
"4",4,"Portland, OR--WA",45.5204041,-122.6510867
"5",5,"Virginia Beach, VA",36.9087514,-76.3098174
"6",6,"Detroit, MI",42.4897523,-83.2272105
"7",7,"Denver--Aurora, CO",39.7107736,-104.9550955
"8",8,"Cincinnati, OH--KY--IN",39.185505,-84.4620433
"9",9,"Columbus, OH",40.0211614,-82.968532
"10",10,"Rochester, NY",43.1376079,-77.5682072
"11",11,"Boston, MA--NH--RI",42.3731315,-71.1407078
"12",12,"St. Louis, MO--IL",38.6307051,-90.3409258
"13",13,"San Francisco--Oakland, CA",37.6901153,-122.1284982
"14",14,"Pittsburgh, PA",40.4569607,-79.9510047
"15",15,"Raleigh, NC",35.7656867,-78.6652659
"16",16,"Albany--Schenectady, NY",42.7438952,-73.7994357
"17",17,"New York--Newark, NY--NJ--CT",40.7183569,-73.9702209
"18",18,"Cleveland, OH",41.4436381,-81.605443
"19",19,"Philadelphia, PA--NJ--DE--MD",39.9733309,-75.2981634
"20",20,"Milwaukee, WI",43.0576786,-88.1007907
"21",21,"Dallas--Fort Worth--Arlington, TX",32.8127265,-96.9720007
"22",22,"Barnstable Town, MA",41.6251663,-70.576137
"23",23,"Minneapolis--St. Paul, MN--WI",44.9781562,-93.2797996
"24",24,"Atlanta, GA",33.8241019,-84.3318578
"25",25,"Washington, DC--VA--MD",38.8973945,-77.1897402
"26",26,"Baltimore, MD",39.2340994,-76.6477596
"27",27,"Chicago, IL--IN",41.8271261,-87.8954275
"28",28,"Richmond, VA",37.4779416,-77.4879829
"29",29,"Los Angeles--Long Beach--Anaheim, CA",33.9826675,-118.1043319
"30",30,"Bridgeport--Stamford, CT--NY",41.1353007,-73.5340025




> write.csv(full_resid)
"","x"
"1",0.516781541847445
"2",1.47529795395242
"3",-0.249125350795491
"4",-0.0664706606216777
"5",1.14208833189084
"6",1.896857415521
"7",0.148238719311465
"8",0.201599764771945
"9",0.0325319429738277
"10",-1.97332127912336
"11",-0.0400608206569507
"12",-1.01597894129597
"13",-0.112031256606271
"14",-1.09144248011335
"15",0.509161008635969
"16",-0.345601824584133
"17",-1.35234059054402
"18",-0.83020837256504
"19",1.09925997701885
"20",1.08589314137385
"21",-0.560452534287128
"22",0.82535836585348
"23",-3.0641696560713
"24",-0.585289936977627
"25",0.416153083227677
"26",-0.567952387512714
"27",3.00480676371717
"28",-0.0477437636681417
"29",-0.691633978179701
"30",1.77145593592474

1 Ответ

1 голос
/ 27 февраля 2020

Чтобы получить легенду о цвете и размере, вам необходимо сопоставить их с эстетикой, а затем установить цвета в функции масштаба. Как то так:

ggplot(lat_long, aes(INTPTLON10, INTPTLAT10)) + 
  geom_polygon(data = states, aes(x=long, y = lat, group = group), color= "darkgray", fill="gray") + 
  coord_fixed(1.3)+
  geom_point(aes(color=resid(best)>3, size=abs(resid(best))),
             pch=19) +
  scale_color_manual(values=c('red', 'blue')) +
  theme_map()
...