dictionary - 使用 ggplot 创建热图
问题描述
我正在使用 R,我想使用 Eurostat 包创建一个热图,我正在努力使用调色板。我知道网络上有几个示例,但我无法修复此错误。
我尝试了几种调色板,库,但是,它们中的每一个都抛出了一些错误(以下指的是 Viridis 库)。
ERROR: Error: Discrete value supplied to continuous scale
我想使用蓝色(深蓝色 - 浅蓝色/黄色)的调色板/库。你会这么好心来帮助我吗?
PS。我是新手,欢迎多多指教!
library(eurostat)
library(dplyr)
library(ggplot2)
library(stringr)
data = get_eurostat("edat_lfse_03", time_format = "num")
data_map <- data%>%
filter(age == 'Y25-34' & time == '2019' & isced11 == 'ED5-8' & geo != 'TR')%>%
group_by(geo)%>%
summarise(Values=mean(values, na.rm=TRUE))
mapdata <- get_eurostat_geospatial(nuts_level = 0, resolution='60',
year=2016,
output_class = 'df') %>%
right_join(data_map, by='geo')%>%
mutate(cat = cut_to_classes(Values, n=7, decimals = 1))
map <- ggplot(mapdata, aes(x=long,y=lat,group=group)) +
#scale_fill_manual("NOTHING WORKED HERE")+
xlab('longitude')+ ylab('latitude') +
geom_polygon(aes(fill=mapdata$cat),color="white", size=.1)+
xlim(c(-12,44)) + ylim(c(35,70)) + scale_fill_viridis_c()
map
解决方案
代替
xlim(c(-12,44)) + ylim(c(35,70)) + scale_fill_viridis_c()
利用
scale_x_continuous(limits=c(-12, 44)) + scale_y_continuous(limits=c(35, 70)) + scale_fill_viridis_d()
将离散值转换为连续值。这应该有效。这是你想做的吗?
推荐阅读
- java - if 条件如何减少?
- mysql - Mysql 查询到 Laravel 查询 Like %% 问题
- firebase - 如何使用颤振从错误对话框导航
- gatsby - 如何在 gatsbyJS 中动态创建带有参数的页面?
- css - CSS/Bootstrap/HTML 问题大小图像和代码改进?
- r - 使用反应式值和反应式表达式来触发观察事件
- python - 为什么 Python 中的 Weibull 可靠性分析 Beta 公式与回归线的正态斜率不匹配?
- python - 如何使用循环访问列表元素的特定部分?
- html - instagram 嵌入式浏览器未正确显示 flexbox
- java - java - 如何仅使用Java中的util.Scanner包按字母顺序对单个字符串进行排序?