R 高级宪章 - 修剪行标签,但不在工具提示中





我想显示一个高宪章堆叠条形图,其中行标签被修剪,前五个字符不显示。但是,在工具提示中应显示完整的类别名称。

在上面的示例中,作为 xAxis 上的类别,我只想显示"2012"、"2013",..,而在工具提示中应显示整个类别名称。 这是我的代码

bs.table = data.frame(
Closing.Date = c("Line 2012", "Year 2013", "Year 2014", "Year 2015", "Year 2016"),
Non.Current.Assets = c(40.4, 30.3, 20.4, 34.5, 20),
Current.Assets = c(3.2, 3.3, 2.4, 3.5, 2)
)
hc <- highchart() %>% 
hc_chart(type = "bar") %>%
hc_plotOptions(series = list(stacking = "normal")) %>%
hc_xAxis(categories = bs.table$Closing.Date,
lineColor = 'transparent',
tickWidth = 0,
labels = list(enable = TRUE, 
align = 'left',
x = 5,
style = list(fontSize = '1em',color = '#fff'))) %>%
hc_add_series(name ="Non Current Assets",
data = bs.table$Current.Assets,
stack = "Assets",
dataLabels = list(enabled = TRUE, 
inside = TRUE, 
align = "right", 
style = list(fontSize = '1em',color = '#fff'))) %>%
hc_add_series(name = "Current Assets",
data = bs.table$Non.Current.Assets,
stack = "Assets",
dataLabels = list(enabled = TRUE, inside = FALSE, align = "right", 
style = list(fontSize = '1em',color = '#fff')) ) %>%
hc_legend(enabled = FALSE) %>%
hc_tooltip(shared = TRUE,
headerFormat = '<b>Statement {point.x}</b><br>',
pointFormat = '<b>{series.name}:</b> {point.y} <br>',
footerFormat = '<b>Total:  {point.total} </b>')

提前非常感谢!

您不能在创建图表之前更改列名吗?

# function to get year    
substrRight <- function(x, n){
substr(x, nchar(x)-n+1, nchar(x))
}
# create year column
bs.table$year = substrRight(as.character(bs.table$Closing.Date), 4)
# alter x axis to use this column
hc <- highchart() %>% 
hc_chart(type = "bar") %>%
hc_plotOptions(series = list(stacking = "normal")) %>%
hc_xAxis(categories = bs.table$year,
lineColor = 'transparent',
tickWidth = 0,
labels = list(enable = TRUE, 
align = 'left',
x = 5,
style = list(fontSize = '1em',color = '#fff'))) %>%
hc_add_series(name ="Non Current Assets",
data = bs.table$Current.Assets,
stack = "Assets",
dataLabels = list(enabled = TRUE, 
inside = TRUE, 
align = "right", 
style = list(fontSize = '1em',color = '#fff'))) %>%
hc_add_series(name = "Current Assets",
data = bs.table$Non.Current.Assets,
stack = "Assets",
dataLabels = list(enabled = TRUE, inside = FALSE, align = "right", 
style = list(fontSize = '1em',color = '#fff')) ) %>%
hc_legend(enabled = FALSE) %>%
hc_tooltip(shared = TRUE,
headerFormat = '<b>Statement {point.x}</b><br>',
pointFormat = '<b>{series.name}:</b> {point.y} <br>',
footerFormat = '<b>Total:  {point.total} </b>')

编辑

这是一种解决方法,几乎可以为您提供所需的内容:

highchart() %>% 
hc_chart(type = "bar") %>%
hc_xAxis(categories = bs.table$year,
lineColor = 'transparent',
tickWidth = 0,
labels = list(enable = TRUE, 
align = 'left',
x = 5,
style = list(fontSize = '1em',color = '#fff'))) %>%
hc_plotOptions(series = list(stacking = "normal")) %>%
hc_add_series(name = "Current Assets", bs.table, "column", hcaes(x = year, y = Current.Assets, stuff = Closing.Date),
tooltip = list(pointFormat = "<b>{point.stuff}</b><br> <b>{series.name}:</b> {point.y} <br>"),
dataLabels = list(enabled = TRUE, 
inside = TRUE, 
align = "right", 
style = list(fontSize = '1em',color = '#fff'))) %>%
hc_add_series(name ="Non Current Assets", bs.table, "column", hcaes(x = year, y = Non.Current.Assets),
tooltip = list(pointFormat = "<b>{point.stuff}</b><br>"),
dataLabels = list(enabled = TRUE, inside = FALSE, align = "right",
style = list(fontSize = '1em',color = '#fff')) ) %>% 
hc_legend(enabled = FALSE) %>%
hc_tooltip(shared = TRUE,
headerFormat = '<b>Statement </b>',
footerFormat = '<b>Total:  {point.total} </b>')

最新更新