gpt4 book ai didi

rCharts nvd3 库强制刻度

转载 作者:行者123 更新时间:2023-12-04 11:51:37 25 4
gpt4 key购买 nike

我想强制所有刻度线和刻度标签沿 rCharts 中的轴出现nPlot 来自 nvd3图书馆。我尝试了几种方法都没有成功。

这是默认行为:

df <- data.frame(x = 1:13, y = rnorm(13))
library(rCharts)
n <- nPlot(data = df, y ~ x, type = 'lineChart')
n$yAxis(showMaxMin = FALSE)

enter image description here

我想把所有数据都放在 1:13沿 x 轴显示。

最终,我有我想显示的自定义刻度线 等距 使用以下替换:
n$xAxis(tickFormat = "#! function (x) { 
ticklabels = ['0-1000', '1000-1500', '1500-1700', '1700-1820', '1820-1913',
'1913-1950', '1950-1970', '1970-1990', '1990-2012', '2012-2030',
'2030-2050', '2050-2070', '2070-2100']
return ticklabels[x-1];
} !#")

enter image description here

我希望很清楚为什么我要打印所有刻度线和标签(并且间隔相等)。

为了让您了解成品,这里是 ggplot2印象:
library(ggplot2)
df <- data.frame(x = c('0-1000', '1000-1500', '1500-1700', '1700-1820', '1820-1913',
'1913-1950', '1950-1970', '1970-1990', '1990-2012', '2012-2030', '2030-2050',
'2050-2070', '2070-2100'), y = rnorm(13), z = "group1")
ggplot(data = df, aes(x = x, y = y, group = z)) + geom_line()

enter image description here

根据我在这里和那里找到的一些建议,我尝试了几件事:两者都不起作用。

根据我对文档的阅读,我认为这会起作用:
n$xAxis(tickFormat = "#! function (x) {
return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13][x-1];
} !#")

我也试过这个,机会不大:
n$xAxis(ticks = 13)

我也尝试结合 tickValuestickFormat但没有成功。

我也想过写个脚本,但是我的理解又是 nvd3图书馆不足。
n$setTemplate(afterScript = 
"<script>
var chart = nv.models.lineChart();
var newAxisScale = d3.scale.linear();
.range(d3.extent(chart.axes[0]._scale.range()))
.domain([1, d3.max(chart.axes[0]._scale.domain())])
chart.axes[0].shapes.call(
d3.svg.axis()
.orient('bottom')
.scale(newAxisScale)
.ticks(13)
//.tickValues()
//.tickFormat(d3.format())
).selectAll('text')
.attr('transform','')
</script>"
)

这些都没有在控制台中报告错误,但都没有修改上面第一个图的外观。

最佳答案

事实证明我没有正确设置 tickValues因为我把语法与 tickFormat 混淆了.这是一个 rCharts解决方案。对应的d3nvd3解应该很容易推导出来。

n <- nPlot(data = df, y ~ x, type = 'lineChart')
n$yAxis(showMaxMin = FALSE)
n$addParams(height = 500, width = 1000)
n$xAxis(tickValues = "#! function (x) {
tickvalues = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
return tickvalues;
} !#")
n$xAxis(tickFormat = "#! function (x) {
tickformat = ['0-1000', '1000-1500', '1500-1700', '1700-1820', '1820-1913',
'1913-1950', '1950-1970', '1970-1990', '1990-2012', '2012-2030', '2030-2050',
'2050-2070', '2070-2100'];
return tickformat[x-1];
} !#")
n

请注意代码中的 tickvaluestickValues但是 tickformat[x-1]tickFormat .

enter image description here

关于rCharts nvd3 库强制刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27970771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com