我有一个包含多个列的数据框。我用其中一列(Ex Count)的值绘制条形图,我想显示一个不是' Count'的值的标签。列但是' Rank'的值柱。 我不知道如何更换' point.y'在dataLabels中。
这是一个可重复的例子:
library("shiny")
library("highcharter")
data <- data.frame(Name = c("A", "B", "C", "D", "E"),Count=c(38,44,23,29,26), Rank=10:14)
ui <- fluidPage(
fluidRow(
column(width = 8,
highchartOutput("hcontainer",height = "500px")
)
)
)
server <- function(input, output) {
output$hcontainer <- renderHighchart({
chart <- highchart() %>%
hc_chart(type = "bar") %>%
hc_yAxis(title = list(text = "Count"))
chart <- chart %>%
hc_add_series(name="",data = data$Count, dataLabels = list(enabled = TRUE, format='{point.y}'))
return(chart)
})
}
shinyApp(ui = ui, server = server)
有没有人有想法?
非常感谢 萨姆
答案 0 :(得分:1)
山姆,
最简单的方法是使用hchart
函数。
hchart(data, "bar", hcaes(x = Name, y = Count),
dataLabels = list(enabled = TRUE, format='{point.Rank}'))
这会将所有数据发送到highchart对象,以便您可以通过point.Rank
提取每个点/行的信息(使用highcharts / R语言)。
另一种方式是:
highchart() %>%
hc_yAxis(title = list(text = "Count")) %>%
hc_xAxis(categories = data$Name) %>%
hc_add_series(data = data, type = "bar", hcaes(x = Name, y = Count),
dataLabels = list(enabled = TRUE, format='{point.Rank}'))
您再次发送所有数据:hc_add_series(data = data, ...)
,而不仅仅是计数值。当您对数据框使用hc_add_series
函数(是一个通用函数!)时,您需要在映射参数中使用hcaes(x = Name, y = Count)
来指定如何使用图表中的每个变量。