r - Plotly - 创建具有连续色阶的饼图

标签 r data-visualization plotly pie-chart r-plotly

我正在创建一个绘图图表,其中每个切片的颜色是数据框中的另一个变量。这在 ggplot2 中非常简单,但是,我很难将其转换为plotly。

我的示例代码在这里:

Product <- c("Product1","Product2","Product3","Product4","Product5","Product6","Product7")
Value <- c(1000000,200002,599996,1399994,2199992,2999990,3799988)
Rating = c(0.24, 0.28, 0.17, 0.1, 0.5, 0.6, 0.34)
df <- data.frame(Product,Value, Rating)

plot_ly(df, labels = ~Product, values = ~Value, type = 'pie', textinfo = 'label+percent',
         marker = list(color = ~Rating)) %>%
layout(xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
     yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))

这是输出: enter image description here

看来我没有对“颜色”属性做正确的事情。我希望有一个连续的比例配色方案,最好是当评级变量接近 0 时为红色,当评级变量接近 1 时为绿色。

谢谢。

最佳答案

你可以

  • 对数据框进行排序

    sorted_df <- df[order(df$Rating),]
    
  • 使用colorRampPalette添加自定义颜色

    gradient <- colorRampPalette(c('red', 'green'))
    sorted_df$colors <- gradient(dim(df)[1])[as.numeric(cut(sorted_df$Rating,
                                                            breaks = dim(df)[1]))]
    
  • 为绘图指定颜色

    marker = list(colors = ~colors)
    

这给了你 enter image description here

色阶可以进行一些调整。


Product <- c("Product1","Product2","Product3","Product4","Product5","Product6","Product7")
Value <- c(1000000,200002,599996,1399994,2199992,2999990,3799988)
Rating = c(0.24, 0.28, 0.17, 0.1, 0.5, 0.6, 0.34)
df <- data.frame(Product,Value, Rating)
sorted_df <- df[order(df$Rating),]
gradient <- colorRampPalette(c('red', 'green'))

sorted_df$colors <- gradient(dim(df)[1])[as.numeric(cut(sorted_df$Rating,
                                                        breaks = dim(df)[1]))]


plot_ly(sorted_df, labels = ~Product, values = ~Value, type = 'pie', textinfo = 'label+percent',
        marker = list(colors = ~colors)) %>%
  layout(xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
         yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))

关于r - Plotly - 创建具有连续色阶的饼图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50625970/

相关文章:

r - R中不同时间序列数据值的互相关

javascript - D3.js:使用 slider 更改导入文件

r - 使用新数据预测.lm

python - 如何在 Altair 中绘制带有中线的预装箱直方图?

tree - 绘制树时间线(进化历史)

python - 从Python中的饼图中删除 "0%"标签

R - 在绘图中处理长标签

python - 将轴标题添加到 3D 曲面图袖扣和绘图

r - 我们可以创建一个比 R 中的值多 n 个级别的因子变量子集吗?

r - 在矩阵上进行最小/最大聚合后获取位置索引