gpt4 book ai didi

rCharts dplot - 将颜色映射到特定组

转载 作者:行者123 更新时间:2023-12-02 03:00:30 25 4
gpt4 key购买 nike

我们在 rCharts 中使用 dplot(使用 dimple 库)尝试在 R Shiny 中创建气泡图。这一切都运行良好,但我们无法将特定颜色分配给特定气泡(或下面代码中的“ channel ”)。我们已经设法使用 defaultColors 指定了一组颜色,但这些颜色是随机分配给 channel 的,而不是以我们指定的方式!

谁能帮助我们正确映射色彩(u)rs?

output$BubbleChart2 <- renderChart2({
Channel <- c('TV','Radio','Press')
Spend <- c(100000,50000,20000)
Revenue <- c(500000,100000,30000)
df <- data.frame(Channel,Spend,Revenue)
df$ROI <- (df$Revenue/df$Spend)
r2 <-dPlot(x="Revenue",y="ROI",type="bubble",groups="Channel",z="Spend",data=df,width=750)
r2$defaultColors("#!d3.scale.ordinal().range(['#C2E588','#FDC382','#FC9A8F']).domain(['TV','Radio','Press'])!#")
r2$xAxis(type = "addMeasureAxis")
r2$yAxis(type = "addMeasureAxis")
r2$zAxis(type = "addMeasureAxis")
r2$legend( x = 200,
y = 7,
width = 400,
height = 20,
horizontalAlign = "center" )
return(r2)

最佳答案

我不熟悉rCharts,但是根据the comments in this SO question ,颜色的顺序是按计数的降序排列。

所以您可以做的是:将 color 列添加到您的 data.frame 中,然后按照您绘制所依据的列对颜色进行降序排序。

不过这只是一种解决方法,您可能应该在 github 上提交问题。

简单示例:

library(rCharts)

Channel <- c('TV','Radio','Press')
Spend <- c(100000,50000,20000)
Revenue <- c(500000,100000,30000)
df <- data.frame(Channel,Spend,Revenue)
df$ROI <- (df$Revenue/df$Spend)
df$Colors <- c("'#C2E588'","'#FDC382'","'#FC9A8F'")

col_order <- df[order(-Revenue), "Colors"] %>% paste(collapse = ",")
r2 <- dPlot(x="Revenue",y="ROI",type="bubble",groups="Channel",z="Spend",data=df,width=750)
r2$defaultColors(sprintf("#!d3.scale.ordinal().range([%s])!#", col_order))
r2

df$Revenue <- c(5000,100000,30000)

r3 <- dPlot(x="Revenue",y="ROI",type="bubble",groups="Channel",z="Spend",data=df,width=750)
r3$defaultColors(sprintf("#!d3.scale.ordinal().range([%s])!#", col_order))
r3

r2:

r2

r3:

r3

关于rCharts dplot - 将颜色映射到特定组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46422784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com