繁体   English   中英

使用R限制高位图中X轴的刻度

[英]Limit ticks on X axis in highcharts with R

我正在尝试在我在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

图片1 图像2

您可以尝试新的包highcharter ,其中包含一些快捷方式功能,用于创建图表(使用highstock)给定日期和值。 查看链接http://jkunst.com/highcharter/oldindex.html#time-series

在此输入图像描述

您可以使用xAxisminTickInterval选项

 minTickInterval: NumberSince 

轴值允许的最小刻度间隔。 例如,在使用每日数据放大轴时,可以使用此选项来防止轴显示小时数。 默认为轴上两点之间的最近距离。

来自http://api.highcharts.com/highcharts#xAxis.minTickInterval

或者,使用tickInterval设置自定义滴答tickInterval

 tickInterval: Number 

以轴为单位的刻度线的间隔。 当为null时,计算滴答间隔大致遵循线性和日期时间轴上的tickPixelInterval。 在分类轴上,null tickInterval将默认为1,一个类别。 请注意,日期时间轴基于毫秒,因此例如一天的间隔表示为24 * 3600 * 1000

来自http://api.highcharts.com/highcharts#xAxis.tickInterval

因此,在您的情况下,也许您应该使用每周滴答,即tickInterval = 7* 24 * 3600 * 1000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM