我试图在使用hchart()函数绘图时更改条形图条的默认颜色。从文档我假设添加一个"颜色"参数应该有效,但是下面的代码会生成紫色条而不是黑条。
hchart(head(mtcars), "column", x = rownames(head(mtcars)), y = disp, color = '#000000')
我可以通过使用API创建图表来实现所需的效果,但是我发现使用hchart()函数非常方便,我想知道颜色变化是否可以通过这种方式实现。
答案 0 :(得分:2)
据我了解,函数hchart.data.frame
的实现以及包get_hc_series_from_df
中的帮助函数colorize
和highcharter
存在错误。当前github version以一种非常不同的方式处理这个问题,但我认为这个版本尚未准备就绪。所以目前我提出了一个非常难看的解决方案:
通过colorize
从
fixInNamespace("colorize", "highcharter")
的实施
function (x, colors = c("#440154", "#21908C", "#FDE725"))
{
nuniques <- length(unique(x))
palcols <- (grDevices::colorRampPalette(colors))(nuniques)
if (!is.numeric(x) | nuniques < 10) {
y <- as.numeric(as.factor(x))
xcols <- palcols[y]
}
else {
ecum <- ecdf(x)
xcols <- palcols[ceiling(nuniques * ecum(x))]
}
xcols
}
到
function (x, colors = c("#000000", "#21908C", "#FDE725"))
{
nuniques <- length(unique(x))
palcols <- (grDevices::colorRampPalette(colors))(nuniques)
if (!is.numeric(x) | nuniques < 10) {
y <- as.numeric(as.factor(x))
xcols <- palcols[y]
}
else {
ecum <- ecdf(x)
xcols <- palcols[ceiling(nuniques * ecum(x))]
}
xcols
}