小编Pau*_*oso的帖子

如何在ggplot中将索引号用作x?

这似乎应该很容易,但我无法弄清楚.我有一个数据框,其中行名称自动创建为索引编号,如下面的示例所示.

> df
    employee salary  startdate
1   John Doe  21000 2010-11-01
2 Peter Gynn  23400 2008-03-25
3 Jolie Hope  26800 2007-03-14
Run Code Online (Sandbox Code Playgroud)

我想使用x轴上的行名称来绘制它,但由于它没有名称,我无法弄清楚这一点.有人能指出我正确的方向吗?

r ggplot2

17
推荐指数
1
解决办法
3万
查看次数

根据列条目(或排名)子集数据框

我有一个像这一个简单的data.frame:

id group idu  value
1  1     1_1  34
2  1     2_1  23
3  1     3_1  67
4  2     4_2  6
5  2     5_2  24
6  2     6_2  45
1  3     1_3  34
2  3     2_3  67
3  3     3_3  76
Run Code Online (Sandbox Code Playgroud)

从我想要检索每个组的第一个条目的子集; 就像是:

id group idu value
1  1     1_1 34
4  2     4_2 6
1  3     1_3 34
Run Code Online (Sandbox Code Playgroud)

id不是唯一的,所以方法不应该依赖它.

我可以实现避免循环吗?

dput() 数据的:

structure(list(id = c(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L), group = c(1L, 
1L, 1L, 2L, …
Run Code Online (Sandbox Code Playgroud)

r subset

13
推荐指数
2
解决办法
3272
查看次数

ggplot2 - 无法在循环内使用scale_fill_manual应用颜色

我正在运行一个循环来获取我的数据集的每个子设置,一个地图并相应地应用给定的调色板(和相应的图例).

人们倾向于不喜欢使用for()循环并最大化他们的方法的矢量化.我不知道使用此特定数据集对流程进行矢量化的最佳方法.

在这个特殊情况下,我正在处理一个相对较大的数据集(分布物种Atlas),因为使用了不同的方法,并且每个物种必须通过不同的选项,考虑到特定的季节,不同的观察结果等,因此特别复杂.物种可能在一个季节出现而错过另一个季节(它们可能是饲养员,居民或移民).应为所有情况(季节)创建地图,不存在时为空.可以使用和使用附加数据(除了来自现场工作的数据).除了在自定义离散比例中显示感兴趣的变量(丰度)之外,地图图例必须适应所有变化.

通过运行循环,我觉得(根据我有限的专业知识)我可以更容易地保留和控制所需的几个对象,同时踩入我创建的通量以产生感兴趣的碎片,最后创建物种分布图集.

我的问题是我将每个结果ggplot存储在list()对象中.每个季节的每个物种都将存储在一个清单中.我现在面临的问题是相关scale_fill_manual使用时 里面.

这种行为很奇怪,因为我完成了地图,但颜色只应用于最后一个ggplot输出.尽管如此,仍然可以在图例中正确识别所有值.

举例说明:

if (!require(ggplot2)) install.packages("ggplot2",
    repos = "http://cran.r-project.org"); library(ggplot2)
if (!require(grid)) install.packages("grid",
    repos = "http://cran.r-project.org"); library(grid)
if (!require(RColorBrewer)) install.packages("RColorBrewer",
    repos = "http://cran.r-project.org"); library(RColorBrewer)
if (!require(reshape)) install.packages("reshape",
    repos = "http://cran.r-project.org"); library(reshape)
Run Code Online (Sandbox Code Playgroud)

首先是一个简单的例子

#Create a list of colors to be used with scale_manual
palette.l <- list()
palette.l[[1]] <- c('red', 'blue', 'green')
palette.l[[2]] <- c('pink', 'blue', 'yellow')
# Store each ggplot in a list object
plot.l <- list()
#Loop it …
Run Code Online (Sandbox Code Playgroud)

loops r ggplot2

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

标签 统计

r ×3

ggplot2 ×2

loops ×1

subset ×1