有什么方法可以访问 DescTools::Desc() 生成的绘图对象?

Any way to access the plot object generated by DescTools::Desc()?

我正在使用 DescTools 中的 Desc() 来描述 rmarkdown PDF 文档中的一些变量。问题是它生成了 3 个图,当我编织文档时,这些图保持在一条直线上,从而剪裁了图像。

示例:

dates <- sample(seq(as.Date('1999/01/01'), as.Date('2021/01/01'), by="day"), 1000)

results <- DescTools::Desc(dates)

results

输出包含 3 个图。我可以使用结果 [[1]]] 中的列表找到各个响应,但我找不到绘图对象,我认为这可能是一种将一个放在另一个下面的方法。

有什么想法吗?

results 中没有绘图对象。

相反,当您在控制台中键入 results 时,它会调用 S3 泛型 print,后者又会调度 print.Desc 方法。默认情况下,print.Desc 将调用基于 results 的“class”成员的绘图函数,在您的示例中为 "Date"。如果您在控制台中键入 DescTools:::plot.Desc.Date,您将在每次打印 results.

时看到实际生成绘图的函数

所以没有情节对象。有创建绘图的数据,每当您将 results 打印到控制台时,绘图都是通过调用绘图函数创建的。

Desc 绘图函数似乎只有很少的选项可供修改,因此最好的选择可能是使用 results 中的数据来创建您自己的绘图。如果您希望看到 results 的内容而不带图表,只需键入:

print(results, plotit = FALSE)

如果你想要三个地块一次一个,你可以这样做:

DescTools:::plot.Desc.Date(results[[1]], type = 1)

DescTools:::plot.Desc.Date(results[[1]], type = 2)

DescTools:::plot.Desc.Date(results[[1]], type = 3)