我尝试使用rCharts和多边形前端构建图表:
dtf <- data.frame(x=c(1, 2, 3, 4, 5), y=c(4, 5, 6, 3, 5),
label=c('one', 'two', 'one', 'two', 'two'))
color.mapping <- list(one='#ff2385', two='#229922')
p2 <- rPlot(x='x', y='y', data=dtf, type='point', color='label')
print(p2)
我希望通过使用某种离散映射(如上例中所示)或使用其他逻辑来控制点颜色。怎么做
编辑
在Ramnath's answer之后,我尝试执行以下操作,但是我得到一个空页:
dtf <- data.frame(x=c(1, 2, 3, 4, 5), y=c(4, 5, 6, 3, 5),
label=c('one', 'two', 'one', 'two', 'two'))
p2 <- rPlot(x='x', y='y', data=dtf, type='point', color='label')
p2$guides(color = list(scale = "#! function(value){
color_mapping = {one: '#ff2385', two: '#229922'}
return color_mapping[value];
} !#"))
print(p2)
解决 从github升级rCharts解决了这个问题。
答案 0 :(得分:2)
目前Polychart有点复杂,尽管我们正在尝试创建更友好的R解决方案。但是现在,这是在Polychart中设置自定义比例的方法
p2$guides(color = list(scale = "#! function(value){
color_mapping = {one: '#ff2385', two: '#229922'}
return color_mapping[value];
} !#"))
我们的想法是为色彩美学设定一个尺度。但是,您可以指定一个函数,而不是使用调色板,该函数根据映射返回颜色。您需要在#!
和!#
之间包装该函数,以便rCharts将其视为JS文字,并且在转换为JSON时不会对其进行字符串化。
如果您不确定如何在JSON中指定color_mapping
,可以使用函数toJSON
转换R对象。唯一需要注意的是避免在函数内部使用双引号,因为它们往往会被转义,从而导致错误。
希望这很有用。