我有一个由以下内容组成的系列:
我想专门增加图表第二部分的刻度间隔,以便我可以压缩数据。需要明确的是,我希望相同的空格表示图表左侧的一个月,右侧表示 6个月。
我不确定Highcharts是否允许...我认为可以有两种不同的方法:
使用tickPositions和tickPositioner我只能显示或多或少的滴答,但始终将它们保持在时间轴上。
这是我的代码:
Highcharts.chart('container', {
chart: {
zoomType: 'xy',
animation: false
},
title: {
text: 'Some data'
},
legend: {
verticalAlign: 'bottom',
borderWidth: 0
},
xAxis: {
type : 'datetime',
tickInterval: 30 * 24 * 3600 * 1000,
labels: {
useHTML: true,
rotation: -90
},
dateTimeLabelFormats: { // don't display the dummy year
month: '%b-%y',
year: '%Y'
},
plotLines: [{
color: 'gray',
dashStyle: 'longdashdot',
value: 1536278400000,
width: 1,
label: {
text: 'Selected Date'
}
}]
},
yAxis: {
title: {
text: null
},
maxZoom: 0.1
},
series: jsonData
});
Here's a jsfiddle,其中包含我的原始数据的一部分。
哪种方法是实现这一目标的最佳方法?
答案 0 :(得分:0)
Highcharts默认情况下不允许使用,但是您可以使用解决方法。您可以创建两个具有正确大小比例的xAxis和两个系列,如下面的示例所示:
bc <- read.csv("CSV name", header = T)
bc$DATE = as.POSIXct(strptime(bc$DATE, format="%d-%m-%Y"))
bc$TIME = as.POSIXct(bc$TIME, format="%H-%M-%S"))
library(ggplot2); library(tidyr)
df_tidy <- df %>%
mutate(TIME = row.names %>% as.integer) %>%
select(-row.names) %>%
gather(series, value, -TIME)
ggplot(df_tidy, aes(TIME, value, group = series)) +
geom_line() +
facet_wrap(~series, scales = "free_y")