Я хочу построить положительные и отрицательные значения с их пропорциональным размером, представленным точками, так что в обоих случаях наименьшее значение, а наибольшая - их величина. i e я хочу, чтобы размер отрицательной точки такой, что 0 наименьший, а -5 наибольший, а для положительного значения 0 наименьший, а 5 - самый большой. что-то вроде этого изображенияКак изменить размер в geom_point()
Я знаю, что я могу реверс и сделать это, если это будет только одна переменная, как here.
Но у меня есть два размера.
Мои данные и код приведены ниже.
dput(ddf)
structure(list(tr = c(0.192833333333335, 0.800378947368421, 2.28270774476556,
0.586631034482762, 0.217825000000001, -0.773253846153845, -0.459235294117648,
-0.0706142857142855, -0.24942, 11.1025623422045, -0.871375, -0.929300000000012,
-5.92639999999999, 3.87432045251869, -3.62026818181818, -2.49045555555556,
-0.730590000000007, 3.03523157894737, 1.04723333333333, -0.120474999999999
), Itr = c(0.192833333333335, 0.800378947368421, 2.28270774476556,
0.586631034482762, 0.217825000000001, NA, NA, NA, NA, 11.1025623422045,
NA, NA, NA, 3.87432045251869, NA, NA, NA, 3.03523157894737, 1.04723333333333,
NA), Dtr = c(NA, NA, NA, NA, NA, -0.773253846153845, -0.459235294117648,
-0.0706142857142855, -0.24942, NA, -0.871375, -0.929300000000012,
-5.92639999999999, NA, -3.62026818181818, -2.49045555555556,
-0.730590000000007, NA, NA, -0.120474999999999), td = c("Increasing",
"Increasing", "Increasing", "Increasing", "Increasing", "Decreasing",
"Decreasing", "Decreasing", "Decreasing", "Increasing", "Decreasing",
"Decreasing", "Decreasing", "Increasing", "Decreasing", "Decreasing",
"Decreasing", "Increasing", "Increasing", "Decreasing"), lat = c(-58.07,
-57.9, -56.74, -55.22, -55.43, -54.12, -54.62, -54.63, -54.48,
-54.25, -52.89, -54.05, -49.79, -49.82, -48.83, -48.73, -49.69,
-49.29, -48.89, -49.37), lon = c(130.82, 131.15, 131.67, 129.14,
127.71, 127.42, 126.9, 128.43, 128.33, 130.17, 125.77, 128.69,
123.2, 123.15, 124.05, 123.67, 125.03, 124.91, 124.97, 124.98
)), .Names = c("tr", "Itr", "Dtr", "td", "lat", "lon"), class = "data.frame", row.names = c(NA,
20L))
Код:
plt<-ggplot()+
geom_point(data = ddf,aes(x = lon, y = lat,size = Itr,shape=td),fill="Blue")+
geom_point(data = ddf,aes(x = lon, y = lat,size = Dtr,shape=td),fill="Green", show.legend = FALSE)+
scale_size_continuous(name="IDt",range=c(2,12))+
scale_shape_manual(name= "td",values=c(25,24),labels=c("Decreasing","Increasing"))
plt
Помогает ли этот ответ? http://stackoverflow.com/questions/20035359/diverging-size-scale-ggplot2 – Nate