我正在尝试用几何图形在 ggplot 中制作图表geom_sf。我可以使用 来绘制图表scale_fill_scontinuous,但是我想将标题分成离散的间隔,这样scale_fill_scontinuous我就可以使用 来代替使用scale_fill_brewer。\n我不想在 ggplot 之外创建中间 data.frame 或向量。
目前我的图表如下所示:
\nggplot(data=uniao3, aes(fill=`\xc3\x81rea \xc3\x9amida`))+\n geom_sf()+\n scale_fill_continuous(limits=c(0,20000),\n breaks=c(500,2000,8000,15000,20000),\n labels=c(\'500\',\'200-2k\',\'2k-8k\',\'8k-15k\',\'15k>\'),\n name="Wetland")+\n facet_wrap(~Ano)\nRun Code Online (Sandbox Code Playgroud)\n\n我希望将图例(比例)呈现为渐变,而不是呈现为类似于此的块:
\n\n我知道该scale_fill_brewer命令非常优雅且高效地执行此操作,但是如何将连续变量设置为 ggplot 内的离散变量?
我之前问过一个问题,但现在我想知道如何将标签放在栏上方。
dataframe <- c (1,1.2,40,1000,36.66,400.55,100,99,2,1500,333.45,25,125.66,141,5,87,123.2,61,93,85,40,205,208.9)
Run Code Online (Sandbox Code Playgroud)
更新日期
更新
按照同事的指导,我正在更新问题。
我有一个数据库,我想计算该基数的给定值在预定义范围内出现的频率,例如:0-50、50-150、150-500、500-2000。
在帖子中(如何创建具有预定义的非均匀间隔的频率直方图?)我设法做到了这一点,但我不知道如何在条形上方添加标签。我试过:
barplort (data, labels = labels),但没有成功。
我使用 barplot 因为该帖子推荐了我,但如果可以使用 ggplot 来完成,那也很好。
我尝试在 R 中仅在 yyyy 中转换日期格式 yyyymmdd。如何在 R 中的日期中仅转换数字年份?提出了一个非常有趣的答案,因为它设法让 R 理解将润滑包中的 8 位数条目 (yyyymmdd) 转换为 4 位数年份 (yyyy),这对我来说非常好。
在我用于round_date()它的旧代码中:
date2<-c('01/01/2000','08/08/2000','16/03/2001','25/12/2000','29/02/2000')
name<-c('A','B','C','D','E')
df<-data.frame(date2,name)
df2 <- df %>%
mutate(date2 = dmy(date2)) %>%
mutate(year_date = round_date(date2,'year'))
df2
str(df2)
date2<date> name<chr> year_date <date>
2000-01-01 A 2000-01-01
2000-08-08 B 2001-01-01
2001-03-16 C 2001-01-01
2000-12-25 D 2001-01-01
2000-02-29 E 2000-01-01
Run Code Online (Sandbox Code Playgroud)
但是当我发现例如日期 2000-08-08 被四舍五入到 2001-01-01 而不是 2001-01-01 时,我的统计分析开始出现问题。
这对我来说是一个非常大的问题,因为考虑到我的数据库中有 1400 多行,属于 2005 年的信息已移至 2006 年。
我注意到年中(六月之后)之后的日期被四舍五入到下一年,这非常糟糕。
如何将 2000-08-08 日期四舍五入到 2000 而不是 2001?
我有一个非常大的 list() ,其中有超过 2000 个元素,其中每个元素都有两个向量(x 和 y),列表元素之间的大小不同。
例子:
new_list<-list(data.frame(x = c(1,2,3),
y = c(3,4,5)),
data.frame(x = c(3,2,2,2,3,8),
y = c(5,2,3,5,6,7)),
data.frame(x = c(3,2,2,1,1),
y = c(5,2,3,3,2)))
Run Code Online (Sandbox Code Playgroud)
我只想对x这个列表中的向量进行平均以获得如下结果:
df_mean<-data.frame(x=c(2,3.333,1.8))
Run Code Online (Sandbox Code Playgroud)