小编wes*_*352的帖子

如何仅使用 ggplot2 命令将连续变量“分解”为离散区间

我正在尝试用几何图形在 ggplot 中制作图表geom_sf。我可以使用 来绘制图表scale_fill_scontinuous,但是我想将标题分成离散的间隔,这样scale_fill_scontinuous我就可以使用 来代替使用scale_fill_brewer。\n我不想在 ggplot 之外创建中间 data.frame 或向量。

\n

目前我的图表如下所示:

\n
ggplot(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)\n
Run Code Online (Sandbox Code Playgroud)\n

输出\n在此输入图像描述

\n

我希望将图例(比例)呈现为渐变,而不是呈现为类似于此的块:

\n

在此输入图像描述

\n

我知道该scale_fill_brewer命令非常优雅且高效地执行此操作,但是如何将连续变量设置为 ggplot 内的离散变量?

\n

r ggplot2

2
推荐指数
1
解决办法
2988
查看次数

如何在“barplot”图形的条形上方添加标签?

我之前问过一个问题,但现在我想知道如何将标签放在栏上方。

旧帖子:如何创建具有预定义的非均匀间隔的频率直方图?

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

1
推荐指数
1
解决办法
8279
查看次数

在 R 中使用 round_date() 舍入日期

我尝试在 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?

r lubridate

1
推荐指数
2
解决办法
159
查看次数

计算R中list()各个元素的特定向量的平均值并转换为data.frame

我有一个非常大的 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)

r list vector mean

0
推荐指数
1
解决办法
92
查看次数

标签 统计

r ×4

ggplot2 ×1

list ×1

lubridate ×1

mean ×1

vector ×1