【发布时间】:2013-02-22 00:05:38
【问题描述】:
我正在使用Paul Bleicher 的Calendar Heatmap 来可视化一段时间内的一些事件,我有兴趣添加black-and-white fill patterns 而不是(或在其之上)颜色编码以增加日历热图的可读性黑白打印时。
这是日历热图的彩色示例,
这是它在黑白中的样子,
很难区分黑白的各个级别。
有没有一种简单的方法可以让 R 为 6 个级别添加某种模式而不是颜色?
重现彩色日历热图的代码。
source("http://blog.revolution-computing.com/downloads/calendarHeat.R")
stock <- "MSFT"
start.date <- "2012-01-12"
end.date <- Sys.Date()
quote <- paste("http://ichart.finance.yahoo.com/table.csv?s=", stock, "&a=", substr(start.date,6,7), "&b=", substr(start.date, 9, 10), "&c=", substr(start.date, 1,4), "&d=", substr(end.date,6,7), "&e=", substr(end.date, 9, 10), "&f=", substr(end.date, 1,4), "&g=d&ignore=.csv", sep="")
stock.data <- read.csv(quote, as.is=TRUE)
# convert the continuous var to a categorical var
stock.data$by <- cut(stock.data$Adj.Close, b = 6, labels = F)
calendarHeat(stock.data$Date, stock.data$by, varname="MSFT Adjusted Close")
更新 02-13-2013 03:52:11Z,添加模式是什么意思,
我设想将模式添加到日历热图中的各个日期框,因为模式被添加到此图中右侧 (B) 饼图中的各个切片中,
【问题讨论】:
-
添加一个pettern是什么意思?您想更改单元格的大小吗?是否要在某些单元格中添加文本?
-
理论上您可以覆盖格子面板函数以使用
gridExtra::grid.pattern而不是grid.rect。但它不太可能很好地工作,因为这个功能是错误的 -
@agstudy,谢谢你的提问。我添加了一个更新来澄清,但我喜欢你在个人日盒中添加一封信或类似的东西的想法。无论如何,我最初设想的某种模式就像我在更新中描述的那样。
-
@baptiste,我查看了
calendarHeat函数,但看不到使用了grid.rect。请您解释一下如何将grid.rect替换为gridExtra::grid.pattern。谢谢。 -
添加字母或点符号可能是一个更好的主意;为此,您也应该编写一个自定义面板功能。顺便说一句,为什么是 ggplot2 标签?
标签: r plot ggplot2 heatmap visualize