如何在 rmarkdown 内联中更改 plotly 图形大小?
How to change plotly graph size in rmarkdown inline?
我希望在 R Markdown 中进行 EDA 时看到更大的绘图。如果我通过 ggplotly 或 plot_ly 等绘图函数更改图形大小,RStudio 会创建滚动条并且不会显示超过 800 像素的宽度。
这是我的代码:
gg1 <- cars |>
ggplot(aes(speed, dist)) +
geom_point()
gg1 |>
plotly::ggplotly(width = 1000, height = 800)
这是我看到的:
我尝试过但没有做任何事情的事情...
- out.width
- fig.width
- RStudio Tools > Global Options > R Markdown > Visual > Editor content width(我不知道这有什么作用)
现在,如果我输出到控制台而不是内联或编织到 html,那么代码会打印出更大的图形而不会出现任何错误。但我希望在 RStudio R Markdown 交互式会话内联中看到更大的图形。
我找不到在 R 或 R Markdown 中用作设置的方法。但是,我可以告诉你如何临时设置它。
您将使用:
- RStudio 的开发者工具(RStudio 的标准部分)
- 两组函数调用写在Javascript
这是临时。要将块输出重置为正常:
- 收起区块
- 重新运行块
- 重新启动 RStudio
如果在 运行 函数之后添加块,它们将不会继承这些更改。如果要更改它们,请重新运行 函数。
The first line of each set of functions is variable initialization. Skip that first line of code if you run the functions a second time (or more).
这是要做的事情:
在 RStudio 的任意位置,右键单击,select“检查元素”
这将打开开发者工具。在开发人员工具 window 中,打开控制台抽屉。您可以 select 右上角的三个点并使用菜单来执行此操作。
在控制台抽屉中,您将粘贴我提供的函数。但是,对变量的调用只能进行一次。因此,第一次 运行 在 RStudio 的同一会话中,您将包含该行,之后就不会了。当您重新启动 RStudio 时,它会重置。您将需要再次包含该行。 (如果您重新启动开发人员工具,这将不会重置这些变量。)
控制台位于开发者工具的底部。
这是之前的...
这是第一次在 RStudio 会话中复制和粘贴的示例。
您会立即看到任何带有输出的块的宽度都发生了变化。
但是,您可能会注意到溢出是隐藏的。接下来是
您将在控制台抽屉中输入第二个函数以修复该更改。
这次看起来不会有什么不同!
当您查看区块输出时,它仍然看起来像是隐藏了内容。
从这里您必须拖动窗格,以强制调整大小。使其变大、变小,甚至 return 到您开始时的大小。将显示溢出。
最后但同样重要的是 Javascript 函数。
第一个:
//declare variables separately for reuse without duplicate initialization errors
var allOf, sAdd, styler, i, n;
allOf = document.querySelectorAll('[data-ordinal]'); //find them all
if (allOf==undefined || allOf==null) {
allOf = document.querySelector('[data-ordinal]'); // if there is only one
}
sAdd = "max-width: none;" // create style to add
try{
for(i = 0, n = allOf.length; i < n; i++){ //loop through them all
styler = allOf[i].getAttribute("style");
if (styler==undefined || styler==null) { // if there are no HTML styles set
styler = "";
console.log("No style attributes found for ", i)
}
if (styler!="width: 100%; max-width: 800px;") { // if this isn't a chunk output as expected
continue;
console.log("Attributes not changed for ", i)
}
allOf[i].setAttribute("style",styler+sAdd); // append style
console.log("Attributes set for ", i);
}} catch(error) {
console.error(error);
}
第二个:
//declare variables separately for reuse without duplicate initialization errors
var allMore, sAdd2, styler2, j, m
allMore = document.querySelectorAll('.ace_lineWidgetContainer > div'); // first child of class
if (allMore==undefined || allMore==null) {
allMore = document.querySelector('.ace_lineWidgetContainer > div'); // if there is only one
}
sAdd2 = "overflow: visible;" // create style to add
try{
for(j = 0, m = allMore.length; j < m; j++){ //loop through them all
styler2 = allMore[j].getAttribute("style");
if (styler2==undefined || styler2==null) { // if there are no HTML styles set
styler2 = "";
console.log("No styles were found for ", j)
}
allMore[j].setAttribute("style",styler2+sAdd2); // append new styles
allMore[j].style.height = null; // remove the height style
console.log("Attributes set for ", j);
}} catch(error) {
console.error(error);
}
您不必按特定顺序使用它们。但是,除了第一行(变量初始化)之外,如果您完全 运行 的话,您需要 运行 所有行。
如果出现问题或 RStudio 变成了自身的某个变异版本,只需重新启动 RStudio 以重置回原始大小。
我希望在 R Markdown 中进行 EDA 时看到更大的绘图。如果我通过 ggplotly 或 plot_ly 等绘图函数更改图形大小,RStudio 会创建滚动条并且不会显示超过 800 像素的宽度。
这是我的代码:
gg1 <- cars |>
ggplot(aes(speed, dist)) +
geom_point()
gg1 |>
plotly::ggplotly(width = 1000, height = 800)
这是我看到的:
我尝试过但没有做任何事情的事情...
- out.width
- fig.width
- RStudio Tools > Global Options > R Markdown > Visual > Editor content width(我不知道这有什么作用)
现在,如果我输出到控制台而不是内联或编织到 html,那么代码会打印出更大的图形而不会出现任何错误。但我希望在 RStudio R Markdown 交互式会话内联中看到更大的图形。
我找不到在 R 或 R Markdown 中用作设置的方法。但是,我可以告诉你如何临时设置它。
您将使用:
- RStudio 的开发者工具(RStudio 的标准部分)
- 两组函数调用写在Javascript
这是临时。要将块输出重置为正常:
- 收起区块
- 重新运行块
- 重新启动 RStudio
如果在 运行 函数之后添加块,它们将不会继承这些更改。如果要更改它们,请重新运行 函数。
The first line of each set of functions is variable initialization. Skip that first line of code if you run the functions a second time (or more).
这是要做的事情:
在 RStudio 的任意位置,右键单击,select“检查元素”
这将打开开发者工具。在开发人员工具 window 中,打开控制台抽屉。您可以 select 右上角的三个点并使用菜单来执行此操作。
在控制台抽屉中,您将粘贴我提供的函数。但是,对变量的调用只能进行一次。因此,第一次 运行 在 RStudio 的同一会话中,您将包含该行,之后就不会了。当您重新启动 RStudio 时,它会重置。您将需要再次包含该行。 (如果您重新启动开发人员工具,这将不会重置这些变量。)
控制台位于开发者工具的底部。
这是之前的...
这是第一次在 RStudio 会话中复制和粘贴的示例。
您会立即看到任何带有输出的块的宽度都发生了变化。
但是,您可能会注意到溢出是隐藏的。接下来是
您将在控制台抽屉中输入第二个函数以修复该更改。
这次看起来不会有什么不同!
当您查看区块输出时,它仍然看起来像是隐藏了内容。
从这里您必须拖动窗格,以强制调整大小。使其变大、变小,甚至 return 到您开始时的大小。将显示溢出。
最后但同样重要的是 Javascript 函数。
第一个:
//declare variables separately for reuse without duplicate initialization errors
var allOf, sAdd, styler, i, n;
allOf = document.querySelectorAll('[data-ordinal]'); //find them all
if (allOf==undefined || allOf==null) {
allOf = document.querySelector('[data-ordinal]'); // if there is only one
}
sAdd = "max-width: none;" // create style to add
try{
for(i = 0, n = allOf.length; i < n; i++){ //loop through them all
styler = allOf[i].getAttribute("style");
if (styler==undefined || styler==null) { // if there are no HTML styles set
styler = "";
console.log("No style attributes found for ", i)
}
if (styler!="width: 100%; max-width: 800px;") { // if this isn't a chunk output as expected
continue;
console.log("Attributes not changed for ", i)
}
allOf[i].setAttribute("style",styler+sAdd); // append style
console.log("Attributes set for ", i);
}} catch(error) {
console.error(error);
}
第二个:
//declare variables separately for reuse without duplicate initialization errors
var allMore, sAdd2, styler2, j, m
allMore = document.querySelectorAll('.ace_lineWidgetContainer > div'); // first child of class
if (allMore==undefined || allMore==null) {
allMore = document.querySelector('.ace_lineWidgetContainer > div'); // if there is only one
}
sAdd2 = "overflow: visible;" // create style to add
try{
for(j = 0, m = allMore.length; j < m; j++){ //loop through them all
styler2 = allMore[j].getAttribute("style");
if (styler2==undefined || styler2==null) { // if there are no HTML styles set
styler2 = "";
console.log("No styles were found for ", j)
}
allMore[j].setAttribute("style",styler2+sAdd2); // append new styles
allMore[j].style.height = null; // remove the height style
console.log("Attributes set for ", j);
}} catch(error) {
console.error(error);
}
您不必按特定顺序使用它们。但是,除了第一行(变量初始化)之外,如果您完全 运行 的话,您需要 运行 所有行。
如果出现问题或 RStudio 变成了自身的某个变异版本,只需重新启动 RStudio 以重置回原始大小。