r-如何始终在高级图形对象上显示标签

Sam*_*oth 1 javascript r highcharts

我使用了一个包含饼图和条形图的高级图形对象,标签(百分比)显示只有鼠标移动到它上面.见下面的代码:

library(highcharter)
data("favorite_bars")
data("favorite_pies")

highchart() %>% 
hc_title(text = "This is a bar graph describing my favorite pies
        including a pie chart describing my favorite bars") %>%
hc_subtitle(text = "In percentage of tastiness and awesomeness") %>% 
hc_add_series_labels_values(favorite_pies$pie, favorite_pies$percent, name = "Pie",
                          colorByPoint = TRUE, type = "column") %>% 
hc_add_series_labels_values(favorite_bars$bar, favorite_bars$percent,
                          colors = substr(terrain.colors(5), 0 , 7), type = "pie",
                          name = "Bar", colorByPoint = TRUE, center = c('35%', '10%'),
                          size = 100, dataLabels = list(enabled = FALSE)) %>% 
hc_yAxis(title = list(text = "percentage of tastiness"),
       labels = list(format = "{value}%"), max = 100) %>% 
hc_xAxis(categories = favorite_pies$pie) %>% 
hc_legend(enabled = FALSE) %>% 
hc_tooltip(pointFormat = "{point.y}%") %>% 
hc_credits(enabled = TRUE, text = "Source: HIMYM",
         href = "https://www.youtube.com/watch?v=f_J8QU1m0Ng",
         style = list(fontSize = "12px"))
Run Code Online (Sandbox Code Playgroud)

我希望百分比始终显示而不是鼠标移动.看看我从highcharts官方网站获得的图片: 在此输入图像描述 在此输入图像描述

Tut*_*han 5

您可以在highcharts网站上看到用于创建通过单击" 查看选项"粘贴的饼图的选项.

除其他外,您将看到以下代码:

plotOptions: {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: true,
                    format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                    style: {
                        color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                    }
                }
            }
        },
Run Code Online (Sandbox Code Playgroud)

这意味着您必须启用dataLabels选项并提供格式化程序.在您提供的代码中,您实际上可以在第二个hc_add_series_labels_values调用中看到dataLabels enabled选项设置为FALSE:

hc_add_series_labels_values(favorite_bars$bar, favorite_bars$percent,
                          colors = substr(terrain.colors(5), 0 , 7), type = "pie",
                          name = "Bar", colorByPoint = TRUE, center = c('35%', '10%'),
                          size = 100, dataLabels = list(enabled = FALSE))
Run Code Online (Sandbox Code Playgroud)

如果将其更改为TRUE您将看到标签.如果你想要显示数字,你必须将一个函数传递给format列表中的元素,如下所示:

hc_add_series_labels_values(favorite_bars$bar, favorite_bars$percent,
                              colors = substr(terrain.colors(5), 0 , 7), type = "pie",
                              name = "Bar", colorByPoint = TRUE, center = c('35%', '10%'),
                              size = 100, dataLabels = list(enabled = TRUE,
                                                            format = '{point.name}: {point.percentage:.1f} %')) 
Run Code Online (Sandbox Code Playgroud)

然后,您必须使用不同的选项来dataLabels显示它们,例如,请参阅条形图类型的Highcharts API.

  • 在[Highcharts API](http://api.highcharts.com/highcharts/series%3Cpie%3E.dataLabels.style)中,您可以看到`dataLabels`有一个`style`参数.你需要将它添加到R中的`dataLabels`列表中,例如`style = list(fontSize ="6px")`. (2认同)