首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GGplot地图规模个性化

GGplot地图规模个性化
EN

Stack Overflow用户
提问于 2020-09-01 16:01:46
回答 1查看 56关注 0票数 0

我试图做一个由两个主要部分组成的图,“背景”是美国状态的形状,在上面,我添加测量点(使用纬度和经度坐标),我希望根据测量值进行颜色缩放(数据来自数据帧)。我有一个困难的时间改变颜色的点和个性化的传奇栏,我希望该栏也显示最大和最小值,并使用一个颜色刻度,更有视觉吸引力。

代码语言:javascript
复制
    m = map_data('state', region = state)

finalplot <- ggplot() + 
  geom_polygon( data=m, aes(x=long, y=lat), colour="black", fill="white" ) +
  geom_point(data=filteredtable,aes(x=LongitudeMeasure,y=LatitudeMeasure, colour = Result)) +
  ggtitle(paste0("Measurement points of ", contaminant, " in ", state)) +
  theme_void() 

当添加类似于+ scale_color_grey(start = 0.8, end = 0.2)的内容时,它会给出以下错误:向离散比例提供的连续值

如果你有任何其他的想法,什么是最好的方法来做这种类型的情节,我会感激它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-01 17:34:56

我认为这是一个很好的例子,说明为什么在您的问题中发布一些数据以及向我们展示您的代码更好。但是,可以创建一些数据,以便精确的绘图代码产生合理的输出:

代码语言:javascript
复制
set.seed(69)
filteredtable <- data.frame(LongitudeMeasure = runif(100, -81.5, -80.5), 
                             LatitudeMeasure = runif(100, 26, 28),
                             Result = runif(100))
state       <- "Florida"
contaminant <- "Dilithium"

现在让我们试试您的绘图代码:

代码语言:javascript
复制
m = map_data('state', region = state)

finalplot <- ggplot() + 
  geom_polygon( data=m, aes(x=long, y=lat), colour="black", fill="white" ) +
  geom_point(data=filteredtable,aes(x=LongitudeMeasure,y=LatitudeMeasure, colour = Result)) +
  ggtitle(paste0("Measurement points of ", contaminant, " in ", state)) +
  theme_void()

我们的情节是这样的:

代码语言:javascript
复制
finalplot

但是,如果我们试图添加您想要的灰度,我们会得到相同的错误:

代码语言:javascript
复制
finalplot + scale_color_grey(start = 0.8, end = 0.2)
#> Error: Continuous value supplied to discrete scale

原因是scale_color_grey产生了一个离散的灰色标度,但是您需要一个连续的颜色标度,因为Result有一个连续变量。你可能想要scale_color_gradientscale_color_gradientn。让我们尝试使用灰度调色板的scale_color_gradient,并将中断设置为0.1增量,这样我们就可以在条形图上得到我们想要的标签:

代码语言:javascript
复制
finalplot + scale_color_gradient(low = "gray20", high = "gray80", breaks = seq(0, 1, 0.1))

或者如果我们想要更多彩的东西:

代码语言:javascript
复制
finalplot +
  scale_color_gradientn(colours = c("red", "gold", "forestgreen"), breaks = seq(0, 1, 0.1))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63691349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档