小编ven*_*ion的帖子

如何将渐变填充应用于ggplot2中的geom_rect对象?

我正在使用ggplot2构建时间序列折线图,该图使用geom_rect对象来突出显示特定的时间序列事件.

出于纯粹的美学原因,我有兴趣将渐变应用于geom_rect对象,以便在y增加时渐变为白色/透明.

我已经阅读了其他答案,其中有人建议geom_tile或geom_raster可以提供解决方案.我对此没有运气......对我来说geom_rect似乎是明显的选择,因为我可以将时间序列的开头和结尾指定为边界.但是,我希望我被证明是错的!如果有人有任何指导,将非常感谢.我到目前为止的尝试是:

## READ DATA

file = "Data.csv"
timeSeries <- read.csv(file, header=TRUE)

## CONVERT DATA TO DATE CLASS

timeSeries$Date <- as.Date(timeSeries$Date, "%d/%m/%y")
timeSeries$Date <- as.Date(format(timeSeries$Date, "19%y-%m-%d"))

## SET GEOM_RECT DATA FRAME

event <- c("Event1", "Event2", "Event3")
startDate <- c("15/06/15", "12/07/17", "6/09/18")
finishDate <- c("9/01/16", "18/11/17", "5/11/18")

dates <- cbind(event, startDate, finishDate)
dates <- as.data.frame(dates, rownames=NULL, stringsAsFactors=FALSE)

dates$startDate <- as.Date(dates$startDate, "%d/%m/%y")
dates$startDate <- as.Date(format(dates$startDate, "19%y-%m-%d"))

dates$finishDate <- as.Date(dates$finishDate, "%d/%m/%y")
dates$finishDate <- as.Date(format(dates$finishDate, "19%y-%m-%d"))

## PLOT USING GGPLOT

plot …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

如何在使用ggplot2创建的等值区域地图中添加标签?

我正在尝试并且当前未能将文本注释添加到我在ggplot2中创建的等值区域地图中.我试图用它的名字标记每个多边形(一个地方政府区域).

在我继续之前,我知道在这里(非常好的)教程中已经提出了类似的问题.但是,我尝试了几种不成功的方法,并认为我可能偶然发现了一个不同的问题.我怀疑我的代码失败的原因之一是我试图注释geom_polygon(),而我见过的其他方法详细说明了如何注释geom_map对象.也就是说,我想不出为什么用geom_polygon这不可能.

我在下面提供了我的代码.您可以从这里下载我的数据.数据框包括我加入强化shapefile的数据.我尝试附加的标签位于"LGA_NAME11"列中.

## LOAD PACKAGES
require(ggplot2)
require(rgdal)
require(dplyr)

## SET GGPLOT THEME
theme_clean <- function(base_size = 12) {
    require(grid)
    theme_grey(base_size) %+replace%
            theme(
                    axis.title = element_blank(),
                    axis.text = element_blank(),
                    panel.background = element_blank(),
                    panel.grid = element_blank(),
                    axis.ticks.length = unit(0,"cm"), 
                    axis.ticks.margin = unit(0,"cm"),
                    panel.margin = unit(0,"lines"),
                    plot.margin = unit(c(0, 0, 0, 0), "lines"),
                    complete = TRUE
            )}

## SET COLOUR PALETTES
palette1 <- c("#f2f0f7", "#dadaeb", "#bcbddc", "#9e9ac8", "#756bb1", "#54278f")

## SET LABEL NAMES
lgaNamesSydney <- aggregate(cbind(long, lat) ~ …
Run Code Online (Sandbox Code Playgroud)

gis r ggplot2

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

在dplyr :: mutate中使用条件

我正在使用大型数据框.我正在尝试根据两个当前向量中存在的条件创建一个新向量.

鉴于数据集的大小(及其一般的真棒)我试图找到使用dplyr的解决方案,这导致我变异.我觉得我并不遥远,但我只是无法找到坚持不懈的解决方案.

我的数据框类似于:

   ID  X  Y
1   1 10 12
2   2 10 NA
3   3 11 NA
4   4 10 12
5   5 11 NA
6   6 NA NA
7   7 NA NA
8   8 11 NA
9   9 10 12
10 10 11 NA
Run Code Online (Sandbox Code Playgroud)

要重新创建它:

ID <- c(1:10)
X <- c(10, 10, 11, 10, 11, NA, NA, 11, 10, 11)
Y <- c(12, NA, NA, 12, NA, NA, NA, NA, 12, NA)
Run Code Online (Sandbox Code Playgroud)

我想从现有数据创建一个新的向量'Z'.如果Y> X,那么我希望它从Y返回值.如果Y是NA,那么我希望它返回X值.如果两者都是NA,那么它应该返回NA.

到目前为止,我尝试使用下面的代码让我创建一个满足第一个条件但不是第二个条件的新向量.

newData <- data …
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr

4
推荐指数
2
解决办法
2698
查看次数

通过变量之一的值设置堆积条形图的顺序

我被要求制作一个堆叠条形图,其中条形图和值以精确的方式堆叠和排序。

在这种情况下,左侧为“A3”,中间为“A2”,右侧为“A1”。我已经解决了。

让我感到困惑的是,我还被要求按“A1”的值对条形进行降序排序。在这种情况下,这意味着“值 11”出现在顶部,按顺序下降到“值 6”。条形的顺序记录在向量“plotOrder”中,我在下面的当前尝试中尝试使用它来实现某些目标。

在对 SO 上提出的有关订购堆叠条形图的许多问题进行搜索时,我没有找到描述或解决此特定问题的问题或答案。任何帮助将不胜感激。

下面的简化代码下载了一些与我目前正在使用的形式相同的随机数据,并生成了下面的图表。

library(ggplot2)

stackedBarPlot <- 
        ggplot(data) +
        aes(x = ValueName, y = Percent, fill = reorder(Response, plotOrder)) +
        geom_bar(position = "fill", stat = "identity") +
        coord_flip()
Run Code Online (Sandbox Code Playgroud)

产生这个图表:

在哪里

数据:

structure(list(ValueName = c("Value 11", "Value 14", "Value 13", 
"Value 12", "Value 10", "Value 1", "Value 5", "Value 9", "Value 4", 
"Value 7", "Value 8", "Value 3", "Value 15", "Value 2", "Value 6", 
"Value 11", "Value 14", "Value 13", "Value 12", "Value 10", "Value 1", 
"Value …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

4
推荐指数
2
解决办法
5824
查看次数

如何在 Rmarkdown 中的表格中添加精美的图标?

我正在寻找一种简洁的方法来添加一个包含超棒图标的超链接到Rmarkdown表(kable)\xe2\x80\x94,以便合并到html中bookdown页面中。

\n\n

在文档的其他部分,我使用了icon包,使用标准 Markdown 语法呈现超链接的 fontawesome 图标(在表格之外),例如:

\n\n
`r icon::fa("file-pdf", size = 5)](https://www.google.com/){target="_blank"}`\n
Run Code Online (Sandbox Code Playgroud)\n\n

在此输入图像描述

\n\n

但是当我尝试将其合并为一个项目的一部分时,这种方法不起作用kable.

\n\n
```{r}\n\nlibrary(icon)\nlibrary(knitr)\nlibrary(tidyverse)\n\n## note this code throws the following error: Error in \n## as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = \n## stringsAsFactors) : cannot coerce class "c("knit_asis", \n## "knit_icon")" to a data.frame\n\nlink_location <- "www.google.com"\n\ndata_test_1 <- data.frame(\n  file = c(\'Version 1\', \'Version 2\', \'Version 3\'),\n  last_updated = Sys.Date(),\n  pdf_logo = icon::fa("file-pdf")) %>%\n  mutate(pdf_logo = cell_spec(pdf_logo,\n    link = link_location)) %>%\n …
Run Code Online (Sandbox Code Playgroud)

r knitr font-awesome r-markdown bookdown

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

如何从R中的数据框中删除美元符号($)?

我对R很新,并且正在与一个看起来非常简单的查询进行斗争.

我使用read.csv将一个csv文件导入到R中,并在整理数据和进一步分析之前尝试删除美元符号($)(美元符号正在对图表造成严重破坏).

我一直在努力尝试从数据框中剥离使用dplyr和gsub的$,我真的很感激有关如何去做的一些建议.

我的数据框如下所示:

> str(data)
 'data.frame':  50 obs. of  17 variables:
 $ Year            : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Prog.Cost       : Factor w/ 2 levels "-$3,333","$0": 1 2 2 2 2 2 2 2 2 2 ...
 $ Total.Benefits  : Factor w/ 44 levels "$2,155","$2,418",..: 25 5 7 11 12 10 9 14 13 8 ...
 $ Net.Cash.Flow   : Factor w/ 45 levels "-$2,825","$2,155",..: 1 6 8 12 13 11 10 …
Run Code Online (Sandbox Code Playgroud)

csv r dataframe

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

使用tidyr重塑数据

我正在处理一个data与下面结构类似的数据帧.

  Gender   Age         Number
1 Female 55-59 years       5
2 Female   65+ years       10
3   Male 25-29 years       4
4   Male 40-44 years       3
5   Male 50-54 years       1
Run Code Online (Sandbox Code Playgroud)

我试图使用tidyr重塑数据(迄今为止失败),以便Number列的每个值都在其自己的行上.我正在寻找的输出应该类似于以下内容:

  Gender   Age
1 Female 55-59 years  
2 Female 55-59 years
3 Female 55-59 years
4 Female 55-59 years
5 Female 55-59 years 
6 Female   65+ years
7 Female   65+ years
8 Female   65+ years
9 Female   65+ years
10 Female   65+ years
11 Female   65+ years …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyr

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

标签 统计

r ×7

ggplot2 ×3

dataframe ×2

dplyr ×2

bookdown ×1

csv ×1

font-awesome ×1

gis ×1

knitr ×1

r-markdown ×1

tidyr ×1