下面的降价显示了标题使用 成功到达 ggplot 图形顶部的问题fig.topcaption=TRUE,但没有使用plotly对象。
我在这里了解了 fig.topcaption 。的底层代码fig.topcaption似乎存在于knitr 中,尽管它与绘图图形不兼容,或者它可能与 pandoc、html/html 小部件相关,或者在从 rmarkdown 到最终输出的链中的其他地方。
我现在对解决方法很满意 - 建议?
---
title: "Untitled"
author: "Internet"
date: "29 février 2020"
output:
bookdown::html_document2
---
```{r setup, message=FALSE, echo=FALSE}
library(knitr)
library(ggplot2)
library(plotly)
```
Here is a ggplot object with caption at the top as desired.
```{r, fig.cap="Hello ggplot", fig.topcaption=TRUE, message=FALSE, echo=FALSE}
ggplot(diamonds,aes(price,carat)) + geom_point()
```
Here is the previous ggplot converted to a plotly object with caption reverting …Run Code Online (Sandbox Code Playgroud) 将回归方程、R2 和 p 值(对于方程)巧妙地添加到ggplot图中的最佳(最简单)方法是什么?理想情况下,它应该与组和分面兼容。
第一个图具有回归方程加上使用ggpubr分组的 r2 和 p 值,但它们没有对齐?我错过了什么吗?它们可以作为一个字符串包含在内吗?
library(ggplot)
library(ggpubr)
ggplot(mtcars, aes(x = wt, y = mpg, group = cyl))+
geom_smooth(method="lm")+
geom_point()+
stat_regline_equation()+
stat_cor(aes(label = paste(..rr.label.., ..p.label.., sep = "*`,`~")),
label.x.npc = "centre")
Run Code Online (Sandbox Code Playgroud)
这是ggpmisc 的一个选项,它做了一些奇怪的放置。
编辑奇怪的位置是由 引起的geom=text,我已将其注释掉以提供更好的位置,并添加了 `label.x = "right" 以停止过度绘制。由于@dc37 标记的上标问题,我们仍然根据ggpubr存在未对齐问题
#/sf/answers/2639618271/
library(ggpmisc)
ggplot(mtcars, aes(x = wt, y = mpg, group = cyl))+
geom_smooth(method="lm")+
geom_point()+
stat_poly_eq(formula = "y~x",
aes(label = paste(..eq.label.., ..rr.label.., sep = "*`,`~")),
parse = …Run Code Online (Sandbox Code Playgroud) 如果我想有效地格式化 gt 表的行,是否有比我在下面显示的方法更好的方法。
有些行是字符,因此不需要格式化,有些是需要一位小数的数字,有些是需要两位小数的数字,有些是需要两位小数的百分比。无论做什么,理想情况下都应该推广到其他可能的格式。
我创建了一个数据框,用于创建格式规范,但每种格式都需要在管道中使用单独的命令。
library(dplyr)
library(gt)
#create small dataset
gtcars_8 <-
gtcars %>%
dplyr::group_by(ctry_origin) %>%
dplyr::top_n(2) %>%
dplyr::ungroup() %>%
dplyr::filter(ctry_origin != "United Kingdom")
#transpose data
row_labels <- colnames(gtcars_8)
gtcars_8_t <- as.data.frame(t(as.matrix(gtcars_8)))
gtcars_8_t$row_labels <- row_labels
my_column_names <- colnames(gtcars_8_t)[1:8]
#format data
format_specs <- as.data.frame(row_labels[1:10])
format_specs$type <- c("c","c","n","c","c","n","n","n","n","p")
format_specs$decimals <- c( 0 , 0 , 0 , 0 , 0 , 1 , 2 , 2 , 1 , 2 )
format_specs
#make basic gt table
gtcars_8_t %>%
slice(1:10) %>%
gt()
#make …Run Code Online (Sandbox Code Playgroud) 我想在美元符号之前用减号正确格式化负货币值。
下面的代码在美元符号后面加减号,即$-100
library(scales)
dollar(-100)
Run Code Online (Sandbox Code Playgroud)
您将如何将其更改为所需的输出,即 -$100?我在文档https://rdrr.io/cran/scales/man/dollar_format.html 中没有看到明显的选项
在数据表 (DT) 中设置自定义行条纹/行条纹颜色的“最佳”方法是什么?
我正在使用数据表 (DT) 创建交互式表格(例如通过 rmarkdown 的 HTML),具有下载功能等。这就是为什么我不使用 Huxtable 或任何其他表格格式包,理想情况下我不必设置样式在将其发送到数据表之前,首先将表放在另一个包中 - 尽管如有必要/最佳可用选项对此开放。
这是一个独立的行条带化示例,根据此处显示的示例进行修改,answer#1 ( https://src-bin.com/en/q/1b3261f ),类似于此不成功的尝试。一个问题是悬停颜色不再有效,尽管它是应用于任何存在的颜色?另一个是行颜色在按列重新排序后保持原始行数据 - 不确定这种默认行为是否是我想要的 - 是否容易更改?
DT::datatable(head(iris, 20),
extensions = 'Buttons',
options=list(dom = 'Bfrtip',
buttons = c('excel','csv','print'),
rowCallback=JS(
'function(row,data) {
if($(row)["0"]["_DT_RowIndex"] % 2 <1)
$(row).css("background","#f2f9ec")
}')))
Run Code Online (Sandbox Code Playgroud)
这里有一个选项可以按值为单元格的背景着色,这不是我所追求的: color-cells-in-dt-datatable-in-shiny
Datatables(dot)net datatables.net/manual/styling/theme-creator有一个示例样式表,它创建了一大堆 CSS(357 行代码),大概可以在 style.css 文件中使用它来执行所需的操作(行条纹,自定义颜色)?当我认为我的目的的秘诀就是这行代码(如下)时,这对我来说似乎有点过分了。请注意,数据表示例的默认行为具有独立于初始行号的条带化(参见上面的代码,条带化保留在原始原始数据中)。我可以将下面的代码直接放入 r 数据表代码中吗,例如上面的例子?
table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {`
background-color` `: ` `#f9f9f9` `; }`
Run Code Online (Sandbox Code Playgroud) 我正在使用自定义模式栏图标在新窗口中打开链接,并且遇到了一些相关问题
问题 1) 自定义图标不是正方形。如果重新缩放以适应正方形将太小。你如何让它正确显示?要在编织 rmarkdown 后获得的 html 中进行编辑很简单,通过右键单击您的图标,然后选择检查,您可以将宽度从 1em 更改为 2em 以获得一个宽矩形。
<svg viewBox="0 0 NaN" class="icon" height="1em" width="2em">
Run Code Online (Sandbox Code Playgroud)
你如何在 R 中控制它?
问题 2) 自定义图标默认为单调灰色。如何获得你喜欢的颜色?要在编织 rmarkdown 后获得的 html 中进行编辑很简单,通过右键单击您的图标,然后选择检查,然后添加样式 = 填充...代码,您可以使用您的颜色:
transform="scale(1) translate(0, -8)" style="fill:#7ac143"></path>
Run Code Online (Sandbox Code Playgroud)
你如何在 R 中控制它?下面的示例代码不使用颜色设置。
问题 3) Icon 有一个链接,理想情况下可以在新窗口中打开。plotly 按钮会打开一个新窗口。下面的自定义图标示例代码不使用“空白”选项在新窗口中打开。
你怎么能在新窗口中打开它?
---
title: "Custom icons in Plotly"
output: html_document
---
```{r echo = FALSE, message = FALSE}
library(plotly)
library(htmlwidgets)
library(ggplot2)
data <- data.frame(
Time = round(runif(10), 2),
Value = round(runif(10), 2),
Type = …Run Code Online (Sandbox Code Playgroud) 下面的示例(即保存为文件index.rmd)具有相同的代码块,用于在顶级标题的上方和下方显示图像,但图像不会出现在顶级标题的上方。如果在同一目录中有一个只有这个条目的文件_output.yml,就会发生这种情况bookdown::gitbook:。
该行似乎强制执行目录(我想要的)并且默认情况下似乎在第一个顶级标题之前删除任何内容(图像或文本)(我不想要) - 那么可以修改这种行为吗?
---
site: bookdown::bookdown_site
---
```{r echo=FALSE, message=FALSE, warning=FALSE}
library(imager)
im <- load.image(system.file('extdata/Leonardo_Birds.jpg',package='imager'))
plot(im, axes=FALSE)
```
# R Markdown
```{r echo=FALSE, message=FALSE, warning=FALSE}
library(imager)
im <- load.image(system.file('extdata/Leonardo_Birds.jpg',package='imager'))
plot(im, axes=FALSE)
```
Run Code Online (Sandbox Code Playgroud) 我有一个情节图(在我的例子中是用 R/rmarkdown 制作的),并且想下载数据。
选项 2 和 3 使用自定义模式栏按钮。 plotly book - 自定义模式栏按钮有一个很好的示例,其中包含制作自定义按钮的代码。
选项 2,是一个下载按钮(例如到 csv)作为一个情节自定义模式栏按钮。大概这可以在javascript(或html)中完成并通过,类似于下面选项3中的示例?有关如何执行此操作的建议?在Plotly 论坛上有一些关于这个选项的讨论,使用 Dash(?),但这远远超过了我的工资等级。
选项 3 是一个链接到表格(可能是附录或其他带有数据表对象的网站)的按钮,其中该数据表有一个下载按钮。最后一部分,制作一个可以单击的数据表按钮很容易(请参阅此处)。网站链接的 javascript 代码应该如下所示(javascript 链接到网站)。当您单击时,绘图模式栏中的默认 Plotly 按钮会将您发送到链接的网站,但不确定如何从 R 复制该 html/javascript。
我在这段代码中遗漏了一些简单的东西吗?
编辑下面的图标 web 链接在浏览器中打开后有效 - 即单击图标不会从 Rstudio 查看器打开网站。
#devtools::install_github('cpsievert/plotly_book') #for octocat image
library(tidyverse)
library(DT)
library(plotly)
data(octocat_svg_path, package = "plotlyBook")
octocat <- list(
name = "octocat",
icon = list(
path = …Run Code Online (Sandbox Code Playgroud) 我已经看到了list apply(lapply)的一个例子,它可以很好地获取数据对象列表,并返回一个回归输出列表,我们可以将它传递给Stargazer以获得格式良好的输出. 使用stargazer,通过在split data.frame上提供lamply创建的lm对象列表
library(MASS)
library(stargazer)
data(Boston)
by.river <- split(Boston, Boston$chas)
class(by.river)
fit <- lapply(by.river, function(dd)lm(crim ~ indus,data=dd))
stargazer(fit, type = "text")
Run Code Online (Sandbox Code Playgroud)
我想做的是,不是传递数据集列表来对每个数据集进行相同的回归(如上所述),而是传递一个独立变量列表,对同一数据集进行不同的回归.从长远来看,它看起来像这样:
fit2 <- vector(mode = "list", length = 2)
fit2[[1]] <- lm(nox ~ indus, data = Boston)
fit2[[2]] <- lm(crim ~ indus, data = Boston)
stargazer(fit2, type = "text")
Run Code Online (Sandbox Code Playgroud)
与lapply,我试过这个,它不起作用.我哪里做错了?
myvarc <- c("nox","crim")
class(myvarc)
myvars <- as.list(myvarc)
class(myvars)
fit <- lapply(myvars, function(dvar)lm(dvar ~ indus,data=Boston))
stargazer(fit, type = "text")
Run Code Online (Sandbox Code Playgroud) r ×8
plotly ×3
ggplot2 ×2
html ×2
r-markdown ×2
bookdown ×1
css ×1
currency ×1
dt ×1
format ×1
formatting ×1
ggpmisc ×1
ggpubr ×1
gt ×1
javascript ×1
label ×1
lapply ×1
regression ×1
stargazer ×1