我有以下代码:
p <- ggplot() + coord_fixed() + xlab("") + ylab("")
base_world <- p + geom_polygon(data=world_map, aes(x=long, y=lat, group=group),
colour="green", fill="whitesmoke") +
geom_point(data = as.data.frame(coordinates(busxy)), size = 1,
mapping = aes(x = busxy@coords[,1], y = busxy@coords[,2],
color = busxy$color)) +
labs(title = "Cities\n", color = "States\n") +
scale_color_manual(labels = col2state$s, values = col2state$c)
问题是地图上的颜色与图例中的颜色不一致。
当我从绘图中删除scale_color_manual(labels = col2state$s, values = col2state$c)
时,它可以,但'States'具有数据中的颜色名称。
我的问题是:如何在图片中留下标签名称,还要为地图中的标签指定正确的颜色?
在col2state$c
中有29种颜色名称(如#29A934)
在col2state$s
中有29个状态标签,如图例中所示。
数据框busxy
包含144k条记录,其中包含29个唯一的状态值。
数据来自:
library(maps)
world_map <- map_data("world")
busxy <- data.frame(x=bus[[1]]$latitude, y=bus[[1]]$longitude, city=bus[[1]]$city, state=bus[[1]]$state)
bus <- llply(as.list(jfile5), function(x) jsonlite::stream_in(file(x), pagesize = 10000))
而jfile5
是包含所有数据的json文件的路径。
答案 0 :(得分:1)
Picasso.with(this)
.load(intent.getStringExtra("image_url"))
.into(new Target()
{
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from)
{
showNotification(intent, bitmap);
}
@Override
public void onBitmapFailed(Drawable errorDrawable)
{
Log.e(TAG, "Image download failed");
RichPushService.this.stopSelf();
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable)
{
}
}
可以不使用scale_color_manual
参数。解决此问题的方法是labels
,其中scale_color_manual(values = my_colors)
是国家/地区与其颜色的映射,以命名字符向量进行组织,例如: my_colors
一个例子:
c(AZ = "blue", NV = "red", ...)
答案 1 :(得分:0)
不是调用列,而是为颜色和状态标签保存唯一值的向量。确保向量排序匹配。
vec_c <- unique(col2state$c)
vec_s <- unique(col2state$s) #may need to re-order, or opt to manually create vector
scale_color_manual(labels = vec_c, values = vec_s)