【问题标题】:How can we create a color scales for excel using R?我们如何使用 R 为 excel 创建色标?
【发布时间】:2013-08-21 12:04:56
【问题描述】:

我想根据 excel 电子表格中的输入值创建一个色标。所需的输出是基于在 R 中编程的值在 excel 表中按颜色缩放的单元格。我尝试通过 XLConnect 但尚未找到一个合适的解决方案。

感谢和问候

【问题讨论】:

  • 欢迎来到 SO。你必须更具体,包括你做了什么、什么不工作、你收到什么错误的自包含示例代码。
  • 您几乎可以肯定地做事很难,但至少告诉我们您是否需要知道R 中生成的实际值来设置 Excel 单元格条件格式的范围.
  • @CarlWitthoft,抱歉回复晚了。是的,您的理解是正确的,我需要知道 R 中的确切值来设置 excel 单元格的范围。
  • @PaulHiemstra 谢谢。我实际上是使用 R 的新手,并且一直在探索所有的功能和包。我尝试的是加载一个 xls 文件并根据范围放置一个热图。但问题是这是设备输出,我无法将其保存在 Excel 工作表中。
  • 备份时间:您想要的结果是什么?在 R 中生成热图很容易,无论是否显示数字。除非有人用枪指着你的头,否则你一开始就不应该使用 Excel。

标签: r statistics xlsx xlconnect


【解决方案1】:

xlsx 包允许对 Fill() 使用 RGB 颜色。例如

fg <- rgb(100, 50, 50, max = 100)
bg <- "black"
style <- CellStyle(wb) + Fill(foregroundColor = fg, backgroundColor = bg)
setCellStyle(c, style)

为 rgb() 设置最大值可以更容易地根据值的范围缩放颜色。

但是,恕我直言,xlsx 包有一些粗糙的边缘。

【讨论】:

    【解决方案2】:

    我认为您需要在 Excel 工作簿中编写一个宏,以允许根据您加载到单元格中的数据进行动态更改。查看http://social.msdn.microsoft.com/Forums/office/en-US/4998f97b-44c2-431a-bc91-138a94b12519/how-to-dynamically-set-a-cells-background-color-based-on-value-from-another-worksheet-in-the-same 的最后一个答案,了解一种可能性。这是另一个:http://www.mrexcel.com/forum/excel-questions/459520-dynamically-assigning-cell-rgb-background-color-using-contents-3-other-cells.html

    我没有尝试过这些,所以你必须和它们一起玩,看看它们是否满足你的需求。

    编辑:遇到这个 SO 问题:Conditional Formatting using Excel VBA code

    编辑以回复评论: @AbinasMishra 我不明白你的评论。据我所知,除了让 Excel 运行宏之外,R 无法更改 Excel 条件格式对话框中的值。而且您关于运行宏的“额外内存”的说法是错误的。如果您打开 Excel 工作表,它将为其所有内部对象分配内存。与运行一个小宏相关的时间和 RAM 是微不足道的。

    现在,您是否在考虑静态单元格着色,而不是条件格式?如果您想从 R 中执行此操作,最好的办法是让 R 将一些整数值写入工作簿中的“参考”工作表,并且,是的,运行一个宏来查找这些整数值并将填充颜色分配给感兴趣的细胞。

    【讨论】:

    • 可能我错过了什么。这可以使用我理解的宏来完成,但是每次我们打开 Excel 工作表时都会发生条件格式化,即使我们不这样做也会消耗我们系统中的额外内存' t 在运行检查时更改任何值。但是假设条件格式是通过 R 完成的,我们只是在 excel 中获得输出,那么将没有额外的检查,因为没有后台代码运行。因此,我们只会在值更改时运行 R 代码,而 Excel 工作表只会给出输出。
    • 好的。所以如果我们想要一个静态颜色条,我们只给出低值和高值,颜色等级说黄色(#FFD801)表示“低”,红色(#FF0000)表示“高”。中间的值是在#FF0000 到#FFD801 的范围内自动着色。静态彩条输出必须在参考excel表中。那么有可能吗?
    猜你喜欢
    • 2016-11-07
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多