我不确定我是遇到了错误还是做错了。axis.text在 ggplot 中指定边距并移动轴的位置时,设置不保留。
在不移动轴文本的情况下,轴周围有足够的空间:
library(ggplot)
ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
theme(axis.text.y = element_text(color = "red", margin = margin(40, 40, 40, 40)))
Run Code Online (Sandbox Code Playgroud)
但是,当头寸改变时,保证金不适用:
ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
scale_y_continuous(position = "right") + #This is the new line
theme(axis.text.y = element_text(color = "red", margin = margin(40, 40, 40, 40)))
Run Code Online (Sandbox Code Playgroud)
无论axis.text 是在右侧还是左侧,我都希望边距能够延续。难道我做错了什么?
假设我有一个数据框,df并希望根据列a的值对其进行子集化.
df <- data.frame(a = 1:4, b = 5:8)
df
Run Code Online (Sandbox Code Playgroud)
是否有必要which在括号中包含一个函数,还是只包括逻辑测试?
df[df$a == "2",]
# a b
#2 2 6
df[which(df$a == "2"),]
# a b
#2 2 6
Run Code Online (Sandbox Code Playgroud)
看起来两种方式都是一样的...我在一个大型数据框中得到了一些奇怪的结果(即返回空行以及正确的行)但是一旦我清理了环境并重新编写了我的脚本,它就可以了.
在r包中corrplot,您可以在相关矩阵的下半部分和上半部分混合图形类型以形成良好的视觉效果.我想在矩阵的下半部分有数字,在矩阵的上半部分有椭圆 - 这一切都很好.但是,根据我的数据,我无法看到一些相关数字,因为它们接近0.下面是我正在使用的代码和当前输出.
有没有办法改变矩阵下半部分的文字颜色?我想将相关系数的颜色改为不是白色(它们不需要是红色到蓝色,黑色就可以了).
#Saves the correlation matrix for reproducibility
#The matrix was modified based on the answer here: http://stackoverflow.com/a/36893890/5623577
cormatx <- structure(c(1, 0.480473436029381, 0.727971392165508, 0.0755790813842022,
0.647226624978262, 0.706156814758194, 0.73971915882987, 0.073024457099958,
0.480473436029381, 1, 0.540515552878261, 0.106196818240067, 0.505171500429873,
0.480694458288349, 0.538693541543583, 0.158300667842954, 0.727971392165508,
0.540515552878261, 1, 0.111168537597397, 0.587432598932939, 0.673406541830384,
0.724533755640279, 0.139232852746538, 0.0755790813842022, 0.106196818240067,
0.111168537597397, 1, -0.0844917222701804, 0.0382605955575862,
-0.00462812019681349, 0.000406894700952559, 0.647226624978262,
0.505171500429873, 0.587432598932939, -0.0844917222701804, 1,
0.668544141384562, 0.761303240927891, 0.152127182963817, 0.706156814758194,
0.480694458288349, 0.673406541830384, 0.0382605955575862, 0.668544141384562,
1, 0.772678948045676, 0.119611111043454, 0.73971915882987, 0.538693541543583,
0.724533755640279, -0.00462812019681349, 0.761303240927891, 0.772678948045676, …Run Code Online (Sandbox Code Playgroud) 假设我有一个数据框coefs,其中每行包含曲线的模型系数.
coefs <- structure(list(a1 = c(1.22228259789383, 1.2064168157394, 1.09555089661994, 0.943947433470916, 0.883490658557721, 0.46125552320107), d = c(0.385227755933488, 0.457271644919152, 0.340063262461958, 0.305629949064525, 0.42459163183877, 0.425710112988664), g = c(0, 0, 0, 0, 0, 0), u = c(1, 1, 1, 1, 1, 1)), .Names = c("a1", "d", "g", "u"), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -6L))
Run Code Online (Sandbox Code Playgroud)
我想使用数据框的每一行基于定义的函数向绘图添加新曲线:(您可以将其识别为2PL项目响应模型)
TWOPL <- function(x,a1,b) {
1 / (1 + exp(-a1*(x-(b))))
}
Run Code Online (Sandbox Code Playgroud)
基于这个和这个问题,我尝试了以下ggplot命令,但得到计算失败的错误:
library(ggplot2)
p <- ggplot(coefs, aes(x = 0))
p + stat_function(fun = TWOPL) …Run Code Online (Sandbox Code Playgroud) 我试图专门使用管道来重写以下代码(使用babynames包中的babynames数据:
library(babynames)
library(dplyr)
myDF <- babynames %>%
group_by(year) %>%
summarise(totalBirthsPerYear = sum(n))
slice(myDF, seq(1, nrow(myDF), by = 20))
Run Code Online (Sandbox Code Playgroud)
我得到的最接近的是这段代码(不工作):
myDF <- babyNames %>%
group_by(year) %>%
summarise(totalBirthsPerYear = sum(n)) %>%
slice( XXX, seq(1, nrow(XXX), by = 20))
Run Code Online (Sandbox Code Playgroud)
其中XXX意味着通过管道传递切片,但我被卡住了.任何帮助表示赞赏.