在闪亮的 rCharts 中删除 yAxis 上的小数
Removing decimals on yAxis in rCharts shiny
我正在闪亮的仪表板中使用 rCharts 绘制 nPlot。在 yAxis 上,我有大数字(9 位数字)加上 1 位小数(零),请看这个截图 yAxis labels
我想摆脱零(黄色突出显示),我尝试了在 Whosebug 上找到的几种解决方案,但直到现在都没有任何效果
我尝试对在 yAxis 中绘制的变量使用 format(round())
ct$Market = as.character(ct$Market)
output$top10markets <-renderChart({
topmarkets <-
arrange(ct %>%
group_by(as.character(Market)) %>%
summarise(
CTo = format(round(sum(`Net turnover`)), digits = 0)
), desc(CTo))
colnames(topmarkets)[colnames(topmarkets)=="as.character(Market)"] <- "Market"
topmarkets <- subset(topmarkets[1:10,], select = c(Market, CTo))
topmarkets$CTo <- format(round(topmarkets$CTo, digits = 0))
p <- nPlot(CTo~Market, data = topmarkets, type = "discreteBarChart", dom = "top10markets")
p$params$width <- 1000
p$params$height <- 200
p$xAxis(staggerLabels = TRUE)
p$yAxis(staggerLabels = TRUE, width = 10)
return(p)
})
并得到这个错误:数学函数的非数字参数
我尝试在 rCharts 中使用 TickFormat
p$yAxis(staggerLabels = TRUE, width = 50, tickFormat = "#! function(d) {return '€' + d} !#")
得到了他的结果yAxis with tickFormat所有逗号都被删除了,它仍然与 yAxis 线重叠
我也尝试添加一些 CSS:
.nv-discreteBarWithAxes .nvd3 > g > g > text,
.nv-axisMaxMin text {
transform: translateX(13px);
width: 150px;
height: 80px;
-ms-transform: rotate(20deg);
-webkit-transform: rotate(20deg);
transform: rotate(20deg);
}
.nv-axisMaxMin text {
word-break: break-word;
}
结果:在这个截图中output with CSS
也不好,因为数字超出了框的边界!
我也尝试过更改框的边框大小,但没有用
请帮忙?
非常感谢
您可以使用 p$chart(margin = list(left = 100))
设置左边距,您可以通过 tickPadding = 15
.
在 p$yAxis
中设置填充
你想要的数字格式化程序是tickFormat = "#! function(d) {return d3.format('c')(8364) + d3.format(',.1')(d)} !#"
(8364是欧元符号的十进制代码)。
所以:
library(rCharts)
dat <- data.frame(
Market = c("A", "B", "C"),
CTo = c(1000000, 5000000, 10000000)
)
p <- nPlot(CTo~Market, data = dat, type = "discreteBarChart")
p$yAxis(tickPadding = 15, tickFormat = "#! function(d) {return d3.format('c')(8364) + d3.format(',.1')(d)} !#")
p$chart(margin = list(left = 100))
p
我正在闪亮的仪表板中使用 rCharts 绘制 nPlot。在 yAxis 上,我有大数字(9 位数字)加上 1 位小数(零),请看这个截图 yAxis labels 我想摆脱零(黄色突出显示),我尝试了在 Whosebug 上找到的几种解决方案,但直到现在都没有任何效果
我尝试对在 yAxis 中绘制的变量使用 format(round())
ct$Market = as.character(ct$Market)
output$top10markets <-renderChart({
topmarkets <-
arrange(ct %>%
group_by(as.character(Market)) %>%
summarise(
CTo = format(round(sum(`Net turnover`)), digits = 0)
), desc(CTo))
colnames(topmarkets)[colnames(topmarkets)=="as.character(Market)"] <- "Market"
topmarkets <- subset(topmarkets[1:10,], select = c(Market, CTo))
topmarkets$CTo <- format(round(topmarkets$CTo, digits = 0))
p <- nPlot(CTo~Market, data = topmarkets, type = "discreteBarChart", dom = "top10markets")
p$params$width <- 1000
p$params$height <- 200
p$xAxis(staggerLabels = TRUE)
p$yAxis(staggerLabels = TRUE, width = 10)
return(p)
})
并得到这个错误:数学函数的非数字参数
我尝试在 rCharts 中使用 TickFormat
p$yAxis(staggerLabels = TRUE, width = 50, tickFormat = "#! function(d) {return '€' + d} !#")
得到了他的结果yAxis with tickFormat所有逗号都被删除了,它仍然与 yAxis 线重叠
我也尝试添加一些 CSS:
.nv-discreteBarWithAxes .nvd3 > g > g > text,
.nv-axisMaxMin text {
transform: translateX(13px);
width: 150px;
height: 80px;
-ms-transform: rotate(20deg);
-webkit-transform: rotate(20deg);
transform: rotate(20deg);
}
.nv-axisMaxMin text {
word-break: break-word;
}
结果:在这个截图中output with CSS 也不好,因为数字超出了框的边界!
我也尝试过更改框的边框大小,但没有用
请帮忙?
非常感谢
您可以使用 p$chart(margin = list(left = 100))
设置左边距,您可以通过 tickPadding = 15
.
p$yAxis
中设置填充
你想要的数字格式化程序是tickFormat = "#! function(d) {return d3.format('c')(8364) + d3.format(',.1')(d)} !#"
(8364是欧元符号的十进制代码)。
所以:
library(rCharts)
dat <- data.frame(
Market = c("A", "B", "C"),
CTo = c(1000000, 5000000, 10000000)
)
p <- nPlot(CTo~Market, data = dat, type = "discreteBarChart")
p$yAxis(tickPadding = 15, tickFormat = "#! function(d) {return d3.format('c')(8364) + d3.format(',.1')(d)} !#")
p$chart(margin = list(left = 100))
p