我正在尝试在我在R中创建的高位图上获得正确的日期X轴。当我将变量用作Date
highcharts
时似乎并不理解它当我转换为字符时,会显示所有X标签,这看起来并不好看。使用rCharts包中的NVD3图表,可以选择reduceXticks=TRUE
来解决这个问题。也许有一个等价的?
示例:
# data
df <- data.frame(x = 1:100, y = rnorm(100), s = 100*rnorm(100), z = 10*rnorm(100),Date=
as.POSIXct(seq(Sys.Date(), by = 1, length.out = 100)))
# chart 1
h1 <- Highcharts$new()
h1$xAxis(categories=df$Date,type = "datetime")
h1$yAxis(list(list(title = list(text = 'x'), opposite = FALSE),
list(title = list(text = 'y'), opposite = TRUE),
list(title = list(text = 's'), opposite = TRUE)))
h1$series(name = 'x', type = 'line', color = '#000099',
data = df$x)
h1$series(name = 'y', type = 'line', color = '#FF0000',
data = df$y, yAxis=1)
h1$series(name = 's', type = 'line', color = '#006600',
data = df$s, yAxis=2)
h1
#-------------------------------------------------------------#
h1 <- Highcharts$new()
h1$xAxis(categories=as.character(df$Date),type = "datetime")
h1$yAxis(list(list(title = list(text = 'x'), opposite = FALSE),
list(title = list(text = 'y'), opposite = TRUE),
list(title = list(text = 's'), opposite = TRUE)))
h1$series(name = 'x', type = 'line', color = '#000099',
data = df$x)
h1$series(name = 'y', type = 'line', color = '#FF0000',
data = df$y, yAxis=1)
h1$series(name = 's', type = 'line', color = '#006600',
data = df$s, yAxis=2)
h1
答案 0 :(得分:2)
您可以尝试新的包highcharter
,其中包含一些快捷方式功能,用于创建图表(使用highstock)给定日期和值。查看链接http://jkunst.com/highcharter/oldindex.html#time-series
答案 1 :(得分:1)
您可以使用minTickInterval
xAxis
选项
minTickInterval: NumberSince
轴值允许的最小刻度间隔。比如说 使用每日数据放大轴,这可用于防止 轴显示小时。默认为两者之间的最近距离 轴上的点。
来自http://api.highcharts.com/highcharts#xAxis.minTickInterval。
或者,使用tickInterval
设置自定义滴答数:
tickInterval: Number
以轴为单位的刻度线的间隔。当为null时,勾选 计算间隔大致遵循tickPixelInterval 线性和日期时间轴。在分类轴上,为null tickInterval 将默认为1,一个类别。 请注意,日期时间轴是基于的 以毫秒为单位,例如,一天的间隔表示为 24 * 3600 * 1000 。
来自http://api.highcharts.com/highcharts#xAxis.tickInterval。
因此,在您的情况下,也许您应该使用每周刻度,即tickInterval = 7* 24 * 3600 * 1000
。