我想强制所有刻度线和刻度标签沿着轴出现rCharts
n 绘图从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](https://i.stack.imgur.com/JedGQ.png)
我想将所有数据放入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](https://i.stack.imgur.com/iBKrC.png)
我希望清楚为什么我想要打印所有刻度线和标签(且间距相等)。
为了给出成品的想法,这里有一个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](https://i.stack.imgur.com/QKBKs.png)
以下是我根据我到处发现的一些建议尝试过的几件事:都不起作用。
根据我对文档的阅读,我认为这可行:
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)
我也尝试结合tickValues
and tickFormat
但没有成功。
我也想过写一个剧本,但又是我的理解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>"
)
这些都不会在控制台中报告错误,但它们都不会修改上面第一个图的外观。