我试图做一个由两个主要部分组成的图,“背景”是美国状态的形状,在上面,我添加测量点(使用纬度和经度坐标),我希望根据测量值进行颜色缩放(数据来自数据帧)。我有一个困难的时间改变颜色的点和个性化的传奇栏,我希望该栏也显示最大和最小值,并使用一个颜色刻度,更有视觉吸引力。
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)的内容时,它会给出以下错误:向离散比例提供的连续值
如果你有任何其他的想法,什么是最好的方法来做这种类型的情节,我会感激它。
发布于 2020-09-01 17:34:56
我认为这是一个很好的例子,说明为什么在您的问题中发布一些数据以及向我们展示您的代码更好。但是,可以创建一些数据,以便精确的绘图代码产生合理的输出:
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"现在让我们试试您的绘图代码:
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()我们的情节是这样的:
finalplot

但是,如果我们试图添加您想要的灰度,我们会得到相同的错误:
finalplot + scale_color_grey(start = 0.8, end = 0.2)
#> Error: Continuous value supplied to discrete scale原因是scale_color_grey产生了一个离散的灰色标度,但是您需要一个连续的颜色标度,因为Result有一个连续变量。你可能想要scale_color_gradient或scale_color_gradientn。让我们尝试使用灰度调色板的scale_color_gradient,并将中断设置为0.1增量,这样我们就可以在条形图上得到我们想要的标签:
finalplot + scale_color_gradient(low = "gray20", high = "gray80", breaks = seq(0, 1, 0.1))

或者如果我们想要更多彩的东西:
finalplot +
scale_color_gradientn(colours = c("red", "gold", "forestgreen"), breaks = seq(0, 1, 0.1))

https://stackoverflow.com/questions/63691349
复制相似问题