小编mar*_*kus的帖子

R-ggplot线颜色(使用geom_line)不变

当用ggplot(geom_line)在一个图上绘制2条线时,该线的颜色不等于我设置的颜色。我想要黑色和蓝色线条,但结果是红色和蓝色。我在没有(第一个代码)和(第二个)'scale_color_manual'的情况下进行了尝试,还尝试了使用颜色插入颜色,结果相同:

第一个代码:

  ggplot(data=main_data) +
  # black plot
  geom_line(aes(x=vectors_growth_rate_with_predator, 
                y=disease_prevalnce_with_predator,
                color = "black")) + 
  # blue plot
  geom_line(aes(x=vectors_growth_rate_with_predator, 
                y=disease_prevalnce_without_predator,
                color = "blue"))
Run Code Online (Sandbox Code Playgroud)

第二个代码:

PrevVSGrowth = 
  ggplot(data=main_data) +
  # black plot
  geom_line(aes(x=vectors_growth_rate_with_predator, 
                y=disease_prevalnce_with_predator)) + 
  # blue plot
  geom_line(aes(x=vectors_growth_rate_with_predator, 
                y=disease_prevalnce_without_predator))

PrevVSGrowth + scale_color_manual(values=c(disease_prevalnce_with_predator= 'black',
                                           disease_prevalnce_without_predator = 'blue'))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

r colors ggplot2

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

How to add number of observation to a box plot

我试图弄清楚如何向我的箱形图添加观察数量。包中的示例演示了如何在箱形图上添加观察数。但我需要在 x 轴上写下观察数,我将在此基础上制作一个可重现的示例。

# function for number of observations 
give.n <- function(x){
 return(c(y = median(x)*1.05, label = length(x))) 
# experiment with the multiplier to find the perfect position
}


# plot
ggplot(mtcars, aes(factor(cyl), mpg, label=rownames(mtcars))) +
 geom_boxplot(fill = "grey80", colour = "#3366FF") +
 stat_summary(fun.data = give.n, geom = "text", fun.y = median) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

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

无法将 ggplot 保存为 eps

我已经读过这个这个,但无法使其发挥作用。

vDF <- data.frame(v = rnorm(50,1,40))
g <- ggplot(vDF, aes(x = vDF)) + geom_histogram()
ggsave(g, file="name.eps") 
Run Code Online (Sandbox Code Playgroud)

我不断收到错误消息

grDevices::postscript(..., onefile = FALSE, Horizo​​ntal = FALSE, 中的错误:无法打开文件“name.eps”

为什么我不能完成这个工作?我看到建议说‘嘿,就做...

setEPS()
postscript("whatever.eps")
plot(rnorm(100), main="Hey Some Data")
dev.off()
Run Code Online (Sandbox Code Playgroud)

但我什至无法首先保存原始 .eps 文件。

r ggplot2

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

如何将 getSymbols(quantmod 库)中的数据存储到列表中?

这是我正在运行的代码

library(quantmod)
library(tseries)
Stocks={}
companies=c("IOC.BO","BPCL.BO","ONGC.BO","HINDPETRO.BO","GAIL.BO")
for(i in companies){
   Stocks[i]=getSymbols(i)
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取从中获取的数据帧列表getSymbols以存储在Stocks. 问题是getSymbols直接将数据帧保存到全局环境仅保存列表中Stocks的字符。companies

如何将全局环境中的数据框保存到列表中?

如有任何帮助,我们将不胜感激..提前致谢!

r list quantmod

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

使用ggplot2创建类似于d3.js强制布局的气泡图

是否可以使用 制作与此类似的气泡图R,最好是ggplot2

在此处输入图片说明

鉴于此示例中有三个类别,属性是

  • 所有圆圈都相互吸引(将圆圈聚集在一起)
  • 碰撞检测(停止圆圈重叠)
  • 圆圈被吸引到三个中心之一,这取决于它们的类别

来源:d3indepth.com/force-layout

数据(虽然我真的很确定这种情节的数据应该是什么样的)

set.seed(1)
dat <- data.frame(category = rep(c("A", "B", "C"), each = 10),
                  bubble = rep(1:10, 3),
                  radius = round(runif(30, min = 0.5, max = 3), 2),
                  stringsAsFactors = FALSE)
dat
Run Code Online (Sandbox Code Playgroud)

我用标记它- 我不熟悉 - 尽管问题是关于R. 我希望能吸引熟悉两者的社区成员。 但是可以随意编辑标签和/或帖子。

谢谢。

r data-visualization ggplot2 circle-pack

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

ggplot:情节中表情符号的图例

以下代码生成带有表情符号而不是点形状的图表。在此输入图像描述

library(tidyverse)
library(emojifont)
load.emojifont("OpenSansEmoji.ttf")

pal <- c("\U1f337"="blue","\U1f370"="red")
set.seed(124)
xdf <- data_frame(x=rnorm(10),y=rnorm(10),
                  label=rep(c("\U1f337","\U1f370"),5))
xdf %>% ggplot(aes(x=x,y=y,label=label,color=factor(label))) +
  geom_text(family="OpenSansEmoji") +
  scale_color_manual("object",values=pal) +
  guides(color=guide_legend(labels=FALSE)) +
  theme(legend.text=element_text(family="OpenSansEmoji"))
Run Code Online (Sandbox Code Playgroud)

很容易看出,这个传说的信息量非常大。如果能用彩色表情符号代替两倍的彩色字母就好了a,我希望用单词tulip和代替黑色表情符号cake

这能实现吗?

r legend ggplot2 emoji

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

转置data.frame并计算每列的非NA值

我有这个数据框:

set.seed(100)
x <- data.frame(KAS1_1 = sample(c(letters[1], NA), 10, replace =TRUE),
                KAS1_2 = sample(c(letters[2], NA), 10, replace =TRUE),
                KAS1_3 = sample(c(letters[3], NA), 10, replace =TRUE),
                KAS1_4 = sample(c(letters[4], NA), 10, replace =TRUE),
                KAS1_5 = sample(c(letters[5], NA), 10, replace =TRUE),
                stringsAsFactors = FALSE)
> df
   KAS1_1 KAS1_2 KAS1_3 KAS1_4 KAS1_5
1       a   <NA>   <NA>      d      e
2       a   <NA>   <NA>   <NA>   <NA>
3    <NA>      b   <NA>      d   <NA>
4       a      b   <NA>   <NA>   <NA>
5       a   <NA>      c   <NA>   <NA>
6 …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation lapply dplyr

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

在 ggplot2 中将键图例和标签与图例框的右侧对齐

我有以下数据框,其中我预测 y 作为年龄和性别的函数:

df = data.frame(
  age = c('old', 'old', 'young', 'young'),
  gender = c('male', 'female', 'male', 'female'),
  y = 1:4)
Run Code Online (Sandbox Code Playgroud)

以及相应的图表:

ggplot(df, aes(x=age, y=y, fill = gender)) + 
  geom_col(position = 'dodge')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想控制图例框的外观。特别是,我希望整个框向右对齐(而不是向左对齐)。因此,关键图例应该出现在框的右侧,左侧应该是标签。

我知道 theme() 函数的 legend.text.align 参数,但它仅控制键与其相应标签之间的距离。

知道如何反转对齐吗?

r alignment legend ggplot2

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

在`purrr`软件包中使用`keep`函数的正确方法是什么?

假设我有一个x如下列表:

library(purrr)

set.seed(4152)
x <- rerun(5, a = sample(c("A","B","C","D"),1), b = c(1,2,3,4,5))

Run Code Online (Sandbox Code Playgroud)
x

[[1]]
[[1]]$a
[1] "B"

[[1]]$b
[1] 1 2 3 4 5


[[2]]
[[2]]$a
[1] "B"

[[2]]$b
[1] 1 2 3 4 5


[[3]]
[[3]]$a
[1] "C"

[[3]]$b
[1] 1 2 3 4 5


[[4]]
[[4]]$a
[1] "C"

[[4]]$b
[1] 1 2 3 4 5


[[5]]
[[5]]$a
[1] "A"

[[5]]$b
[1] 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

我想要keep列表x中的所有元素$a %in% c("A","C"),所以我尝试了:

x_sub …
Run Code Online (Sandbox Code Playgroud)

r purrr

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

R:根据行值中的字符串更改列名称

我有一个来自大量 csv 文件的 df 。当前的列名称具有其名称的占位符。有没有办法使每列的名称成为数据的一部分。整个列的字符串将相同。我会手动更改名称,但有 256 列。

开始 df:

   col2          col3       col4     ...
1 version=1    numCh=10   reserved=0
2 version=1    numCh=10   reserved=0
3 version=1    numCh=11   reserved=0
4 version=1    numCh=11   reserved=0
...
Run Code Online (Sandbox Code Playgroud)

所需的输出:

  version    numCh    reserved   ...
1    1        10        0
2    1        10        0
3    1        11        0
4    1        11        0
...
Run Code Online (Sandbox Code Playgroud)

一直在尝试不同的方法,看看其他人是否创造了类似的东西。

r dplyr

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