假设我有两个源文件,第一个命名example1.r,第二个example2.r(下面给出).
example1.r
plot(1:10,1:10)
Run Code Online (Sandbox Code Playgroud)
example2.r
qplot(1:10,1:10)
Run Code Online (Sandbox Code Playgroud)
当我获取example1.r时,绘制图形.但是,当我获取example2.r时,它不会.这里有什么解决方案?
我无法弄清楚如何在knitr图形手册第2页(http://yihui.name/knitr/demo/graphics/)中解释如何安排两个并排的图.我使用以下MWE,输出如下.我希望它们按照两个汽车图的手册中的说明进行对齐(也在手册的第2页).pdf在RStudio中生成(Knit to PDF).
---
title: "Untitled"
output: pdf_document
---
## R Markdown
```{r,echo=FALSE,out.width='.49\\linewidth', fig.width=3, fig.height=3}
barplot(1:4)
barplot(4:7)
```
Run Code Online (Sandbox Code Playgroud)
很棒的 igraph 包,但我正在努力保存这些图。我已经在网上拖网但没有成功。这是一些示例代码,如何保存结果图?
Test <- data.frame(
FirstName=c("Bob","Charlie","Beth","Sam"),
Age=c(23,56,41,33))
Friends <- c(1,2,1,4,2,4,3,4)
g <- graph.empty (4, directed = FALSE)
V(g)$color <- "lightblue" #Nodes$NodeColour
V(g)$label <- as.character(Test$FirstName)
g <- add.edges(g, Friends)
plot(g,
vertex.label.color="black",
vertex.shape="sphere",
vertex.label.cex = 0.5,
vertex.size=24,
layout=layout.circle)
title("Friend Network",cex.main=1,col.main="blue")
#how do you save plot as a png?
Run Code Online (Sandbox Code Playgroud) 这是我使用创建的渐变颜色图例rasterImage:
colfunc <- colorRampPalette(c("red", "blue"))
legend_image <- as.raster(matrix(colfunc(20), ncol=1))
plot.new()
rasterImage(legend_image, 0.9, 0, 1, 1)
lbsq <- seq.int(0, 1, l=5)
axis(4, at=lbsq, pos=1, labels=F, col=0, col.ticks=1, tck=-.05)
mtext(lbsq, 4, -.2, at=lbsq, las=2, cex=.6)
Run Code Online (Sandbox Code Playgroud)
我希望在颜色图例周围添加一个细黑色边框。我尝试添加lty = 1,rasterImage但没有成功。我的问题是如何向生成的图像添加黑色边框并调整其颜色和宽度。
我正在使用 R markdown 编写相当长的代码,分为多个块。情节出现在适当的块下。我想保留这种行为,但另外我想将它们保存到指定的文件夹中。我尝试了此处列出的不同方法如何将绘图保存为磁盘上的图像?(以及互联网上的其他地方),但似乎没有任何效果。
我的可重现示例:
png('cars_plot.png')
plot(cars)
dev.off()
Run Code Online (Sandbox Code Playgroud)
此代码保存绘图,但不显示它(它只返回“空设备 1”)。我也试过 dev.print 和 dev.copy,结果相同。
先感谢您!澄清:我一个一个地运行我的块,我还不想将我的结果转换为 pdf/html。所以knitr: 在报告 * 和 * 输出数字中包含数字以分隔文件或更改 rmarkdown 保存由 r 代码生成的图像的位置不能回答我的问题。
我知道这里已经存在一个非常类似的问题,但提供的答案对我不起作用。
这是我通常的工作流程:我生成一个绘图并在 RStudio 的“绘图”面板中调整绘图的大小,直到我满意为止。然后我打电话dev.size()询问确切的尺寸。然后,我保存绘图并ggsave(...,dpi=300)指定之前确定的宽度和高度。问题是,保存后,绘图看起来完全不同,尤其是文本大小。
如果我使用 RStudio 中的“导出”选项,绘图看起来与预览中的一模一样,但质量很差,而且手动执行此操作非常乏味。
我用来保存绘图的代码如下所示:
library(ggplot2)
ggplot(mtcars, aes(x = mpg, y = wt)) +
geom_point() +
facet_grid(vs + am ~ gear, margins = "vs") +
theme_Publication()
ggsave("plot.png", width=4, height=3.2, dpi=300)
Run Code Online (Sandbox Code Playgroud)
我很想知道,是否有一个选项可以“以编程方式”保存一个能够精确地以高质量重新创建“绘图”预览的绘图。
预先非常感谢!
我想将一个共同的传说集中在两个地块下面.我曾经xpd=TRUE允许在剧情本身之外进行打印,并且oma为图例创造空间.然而,传说不会在水平方向上移动并且会在"早期"垂直方向上被剪切.有什么建议?
quartz(title="PCoA",12,6)
par(mfrow=c(1,2),oma=c(5,0,0,0),xpd=TRUE)
plot(1:3,4:6,main="plot 1")
plot(1:3,4:6,main="plot 2")
# Clips the plot
legend(1,3.5,ncol=3,c("0-1 km","1-5 km","outside barrier"),fill=c("green","orange","red"), title="Fetch")
# Won't let me move the legend sideways
legend(0,3.5,ncol=3,c("0-1 km","1-5 km","outside barrier"),fill=c("green","orange","red"), title="Fetch")
Run Code Online (Sandbox Code Playgroud)

UPDATE
通过下面的解决方案,可以通过拖动边缘来改变图形的尺寸,从而切割图形的边缘(见下文).可能会发生什么想法?


摘要:我的最终目标是使用rCharts,特别是Highcharts,作为ReporteRsPowerPoint 报告自动化工作流程的一部分。我想使用的图表之一在 Rstudio 的查看器窗格中呈现为 html,并且addPlot(function() print(myChart))不会将其添加到 PowerPoint。作为一种解决方法,我决定尝试保存myChart到磁盘,从那里我可以通过这种方式将其添加到 PowerPoint 中。
所以我的问题真的是,如何将我的 html 图像放入我的ReporteRs工作流程中?要么将其保存到磁盘,要么使其可读,ReporteRs都可以解决我的问题。
这个问题确实是一样的这一个,但我使用rCharts,特别是例如发现这里:
#if the packages are not already installed
install.packages('devtools')
require(devtools)
install_github('rCharts', 'ramnathv')
#code creates a radar chart using Highcharts
library(rCharts)
#create dummy dataframe with number ranging from 0 to 1
df<-data.frame(id=c("a","b","c","d","e"),val1=runif(5,0,1),val2=runif(5,0,1))
#muliply number by 100 to get percentage
df[,-1]<-df[,-1]*100
myChart <- Highcharts$new()
myChart$chart(polar = TRUE, type …Run Code Online (Sandbox Code Playgroud) 我正在使用officerR中的程序包将地块转移到演示文稿中。
可以使用ph_with_gg()函数来传输ggplot,但是传递普通R图的功能是什么?我在软件包中找不到任何此类功能。
这些是我所引用的一些资源:
您的帮助将不胜感激!
问候
我正在尝试创建一个绘图并最终将其保存为文件。但因为我正在进行很多更改并想对其进行测试,所以我希望能够同时查看和保存绘图。我已经查看此页面来执行我想做的事情,但在我的系统中,它似乎没有按预期工作。
\n\n这是我的代码:
\n\npng(\'Save.png\')\n\nsample.df <- data.frame(group = c(\'A\',\'B\',\'A\',\'C\',\'B\',\'A\',\'A\',\'C\',\'B\',\'C\',\'C\',\'C\',\'B\'),\nX = c(2,11,3,4,1,6,3,7,5,9,10,2,8),\nY = c(3,8,5,2,7,9,3,6,6,1,3,4,10))\n\nplot(Y ~ X, data = sample.df)\n\ndev.copy(png, \'Save.png\')\ndev.off()\nRun Code Online (Sandbox Code Playgroud)\n\n有几个问题(我是 R 新手,所以我可能完全遗漏了一些东西):
\n\n(1) 当我使用 png() 时,我无法在 RStudio 中查看绘图,因此我使用 dev.copy() 但它不允许我在 R studio 中查看我的绘图
\n\n(2) 即使在我使用 dev.off() 后,我也无法查看保存的文件,直到我关闭 RStudio(显示“Windows 照片查看器无法打开此图片,因为该图片正在另一个程序中编辑”)。每次都需要重新启动,非常不方便。
\n\n我做错了什么以及如何在不每次重新启动 RStudio 的情况下查看和查看保存的文件?先感谢您!
\n\n添加
\n\n根据 Love T\xc3\xa4tting\ 的评论,当我运行 dev.list() 时,这就是我得到的。
\n\n> png(\'Save.png\')\n> \n> sample.df <- data.frame(group = c(\'A\',\'B\',\'A\',\'C\',\'B\',\'A\',\'A\',\'C\',\'B\',\'C\',\'C\',\'C\',\'B\'),\n+ X = c(2,11,3,4,1,6,3,7,5,9,10,2,8),\n+ Y = c(3,8,5,2,7,9,3,6,6,1,3,4,10))\n> \n> plot(Y ~ X, data = sample.df)\n> \n> …Run Code Online (Sandbox Code Playgroud) 我的大部分图都是用 ggplot2 制作的,ggsave 命令用一行将它们保存在它们应该在的位置。但是,使用 vcd 包的马赛克图最适合我的数据。问题:我没有收到包含以下代码的错误消息。R 说它已经保存了我的情节,但被保存的情节是我创建的最后一个 ggplot 图,而不是我想要的马赛克图。当然我可以在 RStudio 中手动保存,但我很确定有更好的方法。有任何想法吗?
Onlyaround <- subset(prepData, preposition=="around")
attach(Onlyaround)
mytable <- table(exp_group, session, result)
ftable(mytable)
mosaic(mytable, shade=TRUE, legend=TRUE, main = "Around by Group")
margin.table(mytable)
ggsave("pics/around_mosaic.png")
detach(Onlyaround)
Run Code Online (Sandbox Code Playgroud) 使用rvest软件包时,我试图在R中打印/显示lego_movie海报。我没有这样做。这是我的尝试:
library(rvest)
poster <- lego_movie %>%
html_nodes("#img_primary img") %>%
html_attr("src")
## 1st attempt
library(jpeg)
jpeg(poster)
dev.off()
## 2nd attempt
readJPEG(poster)
dev.off()
Run Code Online (Sandbox Code Playgroud)
我认为EBImage具有display功能。无法将该软件包安装在中R-3.1.2。它显示警告消息:package ‘EBImage’ is not available (for R version 3.1.2)。
我的问题的底线是:如何在不使用EBImage软件包的情况下将R中的jpeg文件显示为显示器?
几个相关的问题:
我想在R中将以下绘图的输出捕获到包含位图的变量:
require(stats)
plot(sin, -pi, 2*pi) # see ?plot.function
Run Code Online (Sandbox Code Playgroud)
