【问题标题】:Set the position of the labels inside plotly pie chart在 plotly 饼图中设置标签的位置
【发布时间】:2019-06-25 18:14:39
【问题描述】:

我正在尝试弄清楚如何更改饼图中标签的文本位置或使其更具可读性(?)。 以下是示例和可重现代码的屏幕截图:

df <- data.frame(Gruppierung = c("Very long label", "Very very long label", "Long label", "Short label", "Long label / long label"), 
                     freq = c(3.1, 6.2, 8.7, 20, 21))

library(plotly)                                                                                                                                                                       
plot_ly(df, labels=~Gruppierung,values=~freq, marker = list(line = list(color = '#FFFFFF', width = 1)), type="pie",
        textposition = 'auto',textinfo = 'text',
        hoverinfo = 'text',source = "subset",
        text=~paste(sub(" ","<br>",Gruppierung),":","<br>",paste0(freq,"%") ),
        insidetextfont = list(color = '#FFFFFF')) %>%
  layout(showlegend = FALSE,separators = ',.') %>% config(displayModeBar = F)

我的问题(我想要达到的目标):

如果Label不能水平匹配它所在的空间,那么它应该定位在饼图之外

感谢您的帮助!

[!!]@Saurabh Chauhan 建议的方法非常好,但不幸的是它不会每次都匹配,下面是一个屏幕截图,即使在高频率的情况下也可以显示问题一些标签不是水平的:

【问题讨论】:

    标签: r plotly r-plotly


    【解决方案1】:

    最简单的方法是检查freq。如果freq 小于某个值,例如less than 5%,则标签应位于外部,如下所示:

    plot_ly(df, labels=~Gruppierung,values=~freq, marker = list(line = list(color = '#FFFFFF', width = 1)), type="pie",
        textposition = ifelse(df$freq<5,"outside","inside"),textinfo = 'text',
        hoverinfo = 'text',source = "subset",
        text=~paste(sub(" ","<br>",Gruppierung),":","<br>",paste0(freq,"%") ),
        insidetextfont = list(color = '#FFFFFF')) %>%
        layout(showlegend = FALSE,separators = ',.') %>% config(displayModeBar = F)
    

    工作演示的屏幕截图:

    更新

    另一个结果(当freq&lt;10):

    【讨论】:

    • 感谢您提出的伟大而简单的想法!但是这种方法并不总是有效..请参阅我的其他 cmets
    • @Mal_a:我已经更新了答案。可以请检查更新的部分吗?我认为这是您的查看器尝试在外部窗口中打开可视化的问题,您可以看到上面的视图。请随时纠正我!
    • 如果您的意思是查看器,我实际上是故意这样做的。最初我的情节是在闪亮的应用程序中,它只占用很小的空间......
    • @Mal_a:你可以使用fixedRow( column(10,plotlyOutput("plot")) )增加shiny中的空间,这样它就可以占用更多的空间。您可以将其增加到 12 或 15 列(根据您的要求)以占用更多空间。
    • 是的,我知道我可以增加饼图的空间,但是我故意把它做得这么小,因此在我的情况下增加空间是不可能的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2022-10-21
    相关资源
    最近更新 更多