我正在尝试创建一个带有许多hexbin图的 PDF ,我希望每页有特定数量的图。
这个有效:
PDFPath = "C:\\temp\\some.pdf"
pdf(file=PDFPath)
par(mfrow = c(2,2))
for (i in seq(5,10))
{
VAR1 = rnorm(i)
VAR2 = rnorm(i)
plot(VAR1, VAR2)
}
dev.off()
Run Code Online (Sandbox Code Playgroud)
这个不行。它每页只生成一个图:
library(hexbin)
PDFPath = "C:\\temp\\some.pdf"
pdf(file = PDFPath)
par(mfrow = c(2,2))
for (i in seq(5,10))
{
VAR1 = rnorm(i)
VAR2 = rnorm(i)
plot(hexbinplot(VAR1 ~ VAR2))
}
dev.off()
Run Code Online (Sandbox Code Playgroud)
关于出了什么问题的任何想法?
编辑:
我刚刚注意到,原因是mfrow仅指基础图形而不是网格图形。有没有办法实现类似的结果hexbin?
我试图将基于 k-means 的聚类算法的结果显示为pheatmap。为此,我使用此处建议的程序:R draw kmeans clustering with heatmap
现在的问题是,我想向颜色方案突出集群,类似的事情在添加到“RowSideColors” -选项heatmap和heatmap.2。至于pheatmap,我只找到了annotation选项,但这可以按列而不是按行工作。有没有办法突出显示 中的行集群pheatmap?
我的另一个想法是在热图中添加簇列作为单独的颜色。但是,与热图的其余部分相比,我需要使用另一种配色方案,因此我不确定是否可行。
使用auto.key时lattice,我可以交换符号和文本的默认位置吗?也就是说,我希望图例中的文字相对于符号位于右侧.我知道这很容易做到key,但是为每个绘图单独链接颜色和组不仅乏味,而且非常容易出错.
我有一个子串列表,具有以下模式:
my.list <- list("file1\\subfile1-D.ext", "file12\\subfile9-D.ext", "file2\\subfile113-D.ext")
Run Code Online (Sandbox Code Playgroud)
等等.我想将文件号和子文件号提取到包含文件/子文件号的数字数据框中.到目前为止,我一直在使用以下方法:
extract.file <- function(file.name){
file.name <- sub("file", "", file.name)
file.name <- sub("\\\\*subfile.*", "", file.name)
}
extract.subfile <- function(subfile.name){
subfile.name <- sub("file.*subfile", "", subfile.name)
subfile.name <- sub("-D.ext", "", subfile.name)
}
name.file <- lapply(my.list, extract.file)
name.file <- as.numeric(unlist(name.file))
name.subfile <- lapply(my.list, extract.subfile)
name.subfile <- as.numeric(unlist(name.subfile))
my.df <- data.frame(file=name.file, subfile=name.subfile)
Run Code Online (Sandbox Code Playgroud)
我还玩过第一次substring.location从stringr库中提取字符串位置(产生另一个包含开始和结束值的列表),然后循环遍历两个列表,但这又变得太复杂了.有没有更好的方法来实现目标?
我正在使用长格式的数据框来创建面板密度图lattice。现在我想在每个面板内的中值 x 值处添加一条垂直线。dotplot我在(http://r.789695.n4.nabble.com/how-to-add-a-vertical-line-for-each-panel-in-a-lattice-dotplot-中找到了这样做的建议with-log-scale-td4632513.html),但这对我不起作用。这是我的代码:
data(Chem97, package="mlmRev")
densityplot(~gcsescore | factor(score), data=Chem97,
panel=function(...){
panel.densityplot(...)
median.values <- median(x)
panel.abline(v=median.values, col.line="red")
})
Run Code Online (Sandbox Code Playgroud)
错误是:Object x not found。所以我尝试了以下方法:
panel=function(x,...){
panel.densityplot(...)
}
Run Code Online (Sandbox Code Playgroud)
当我将x参数添加到面板函数时,我收到错误Error using packet 1 (2, 3 etc.). x is missing。
出了什么问题?
我刚刚使用 Python 3.8 为 Windows x64 安装了最新版本的 Anaconda,并想添加该tensorflow模块。
根据这个网站,tensorflow 2.2.0应该是可用的。
但是,我的 Anaconda 仅建议tensorflow 2.1.0安装它而无法安装,因为它与 Python 3.8 不兼容。
我该如何安装tensorflow 2.2.0?
在当前版本中ggplot2,与其他行相比,box-whisker-plot中的中间线是粗体绘制的:
library(ggplot2)
p <- ggplot(mtcars, aes(factor(cyl), mpg))
p + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)
我认为在某些旧版本中并非如此.有没有办法分别调整中线的宽度?
我正在使用包含一些tryCatch命令的脚本并创建一个PNG图.当我运行此脚本并发生错误时,错误处理程序正常工作(包括打印错误).但之后我无法在控制台中打印任何内容,即使print("text")没有显示任何结果.但是,仍会显示错误消息(例如,打印geewd()错误消息中的结果Error: Could not find function "geewd").知道问题是什么?
(由于脚本的复杂性,遗憾的是,我无法提供MWE.)