【问题标题】:HTML Rmarkdown Report Changing PlotsHTML Rmarkdown 报告更改图
【发布时间】:2018-05-21 23:37:17
【问题描述】:

当我逐行浏览我的代码时,我得到以下情节:

但是当我将 rmarkdown 渲染到 HTML 报告时,情节看起来像这样:

我无法提供可重现的代码来创建绘图,因为代码是我公司的财产。但它们是使用三个函数创建的,第一个添加圆点,第二个添加星点图层,最后添加黑线。

不知何故,当rmarkdown在渲染报表时,第一层的情节被压缩到了底部。

块选项设置为:

{r, echo = FALSE, message = FALSE, results = "asis"}

【问题讨论】:

  • 如果您启动一个干净的 R 会话,然后交互地运行 Rmarkdown 报告中的代码,会发生什么?
  • 第二个图看起来像是将一个或多个连续变量转换为因子时发生的事情。看起来粉红色和紫色圆圈表示的数据可能发生了这种情况。但是如果不看代码和数据,就很难提供可靠的诊断和解决方案。
  • 我不确定为什么您会通过交互方式和编译获得不同的结果。是在单独的 R 脚本中的“交互式”代码,还是以交互方式运行 rmarkdown 文档中的实际代码?要以交互方式运行 rmarkdown 文档中的代码(假设您在 RStudio 中),请将光标放在 rmarkdown 文档中生成绘图的点正下方,单击 Run 按钮并选择 @ 987654330@.
  • format 输出一个字符串,因此您的数字数据已转换为字符。字符类和因子类是不同的,但它们都是分类的,并且就本期而言,它们的行为方式基本相同。
  • 我们要求提供一个可重现的示例,以避免对问题中实际产生输出的代码造成这种类型的混淆。

标签: r ggplot2 r-markdown


【解决方案1】:

根据我的评论,我认为很可能圆形数据框中的数据正在以某种方式转换为因子类。我不知道为什么 rmarkdown 编译会发生这种情况,而不是交互方式(假设您以交互方式运行 rmarkdown 代码块,而不是包含被认为是相同代码的单独脚本)。在没有其他灵感的情况下,我们需要查看代码和数据来回答这个问题。现在,这是一个产生类似于您的问题图的输出的示例:

使用内置的mtcars数据设置两个数据框:

data(mtcars)
dat1 = mtcars[1:10,]
dat2 = mtcars[11:20, ]

# Convert the `mpg` and `wt` columns to factor in `dat1` only:
dat1$mpg = factor(dat1$mpg)
dat1$wt = factor(dat1$wt)

# Increase the values of dat2$wt so they'll plot to the right of the values in dat1$wt
dat2$wt = dat2$wt * 10

现在是情节:情节看起来是这样的,因为dat1 中的值被视为分类。所以轴 labels 等于点的值,但是它们被绘制的 位置(xy 坐标)等于整数 1 到 n,其中 n 是点数。

dat2 中的连续值以相同的比例绘制在与其实际值相等的位置(即它们的“正确”位置),但没有任何刻度线。

ggplot() +
  geom_point(data=dat1, aes(wt, mpg)) +
  geom_point(data=dat2, aes(wt, mpg)) +
  theme_classic()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2020-03-24
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    相关资源
    最近更新 更多