渗透规模列为小数(.5及以下),但我将问题更改为百分比时出现问题。
我尝试使用此代码将数据格式化为百分比
penetration_levels$Penetration<-sprintf("%.1f %%", 100*penetration_levels$Penetration)
从格式意义上说,但当我试图绘制图表时,我得到一个错误,说渗透被用作离散的,而不是连续的比例。
要解决此问题,请使用此代码将其格式化为数字变量
penetration_levels$Penetration<-as.numeric(as.character(penetration_levels$Penetration))
返回了一堆NA
个。有谁知道如何将其改为百分比的任何其他方法?
以下是我用来映射的代码
ggplot代码:
map <- ggplot(penetration_levels,aes(long,lat,group=region,fill=Penetration),) + geom_polygon() + coord _equal() + scale_fill_gradient2(low="red",mid="white",high="green",midpoint=.25)
map <- map + geom_point(data=mydata, aes(x=long, y=lat,group=1,fill=0, size=Annualized.Opportunity), color="gray6") + scale_size(name="Total Annual Opportunity-Millions",range=c(2,4))
map <- map + theme(plot.title = element_text(size = 12,face="bold"))
map
mydata和渗透负责人
head(mydata)
Sold.To.Customer City State Annualized.Opportunity location lat long
21 10000110 NEW YORK NY 12.142579 NEW YORK,NY 40.71435 -74.00597
262 10016487 FORT LAUDERDALE FL 12.087310 FORT LAUDERDALE,FL 26.12244 -80.13732
349 11001422 ALLEN PARK MI 10.910575 ALLEN PARK,MI 42.25754 -83.21104
19 10000096 ALTON IL 10.040067 ALTON,IL 38.89060 -90.18428
477 11067228 BAY CITY TX 10.030829 BAY CITY,TX 28.98276 -95.96940
230 10014909 BETHPAGE NY 9.320271 BETHPAGE,NY 40.74427 -73.48207
head(penetration_levels)
State region long lat group order subregion state To From Total Penetration
17 AL alabama -87.46201 30.38968 1 1 <NA> AL 10794947 12537359 23332307 0.462661
18 AL alabama -87.48493 30.37249 1 2 <NA> AL 10794947 12537359 23332307 0.462661
22 AL alabama -87.52503 30.37249 1 3 <NA> AL 10794947 12537359 23332307 0.462661
36 AL alabama -87.53076 30.33239 1 4 <NA> AL 10794947 12537359 23332307 0.462661
37 AL alabama -87.57087 30.32665 1 5 <NA> AL 10794947 12537359 23332307 0.462661
65 AL alabama -87.58806 30.32665 1 6 <NA> AL 10794947 12537359 23332307 0.462661
我也注意到有一条白色条带,类似于华盛顿缺少的多边形......你碰巧知道为什么会这样吗?我试图重新合并我的数据并再次订购,但结果仍然相同。
非常感谢任何见解。
另外,我注意到华盛顿缺少白色多边形?有谁知道为什么会这样?
答案 0 :(得分:3)
您可以加载scales
包并使用scale_fill_continuous(labels = percent)
。百分比参数在帮助文本的参数部分中没有很好地记录,但是可以在示例部分here中找到此函数的示例以及scales
包中的其他方便格式。
一个小例子:
library(scales)
df <- data.frame(long = 1:10, lat = 1:10,
penetration = seq(from = 0.1, to = 1, by = 0.1))
ggplot(data = df, aes(x = long, y = lat, fill = penetration)) +
geom_point(shape = 21, size = 6) +
scale_fill_continuous(labels = percent)