如何在HighCharts中的两个图表中同时使用年份和字符串格式的x轴?

时间:2014-02-10 23:23:29

标签: javascript highcharts

我在HighCharts中添加两个图表时遇到问题:一个只有几十年,另一个有相同的几十年,但也有类似“第一年”等等。这两个图表似乎无法被放在同一张图表上。

我收到HighCharts错误#19:太多蜱虫。

以下是我的类别:

categories: ["RNV-A", "RNV-B", "RNV-C", "RNV-D", 
"RNV-E", "RNV-F", "RNV-G", "RNV-H", 
"RNV-I", "P.I.", "1910", "1920", 
"1930", "1940", "1950", "1960", 
"1970", "1980", "1990", "2000", 
"2010", "2020", "2030", "2040", 
"2050", "2060"],

包含所有类别的值:

[40.510191198250766, 40.510191198250766, 40.510191198250766, 40.510191198250766, 40.510191198250766, 40.510191198250766, 40.510191198250766, 40.510191198250766, 40.510191198250766, 40.510191198250766, 42.44299597201156, 41.351219164431505, 39.776804170262345, 38.248217460058335, 36.702829971428535, 35.069195968318716, 33.79982485286693, 33.098321602721086, 32.828589353935875, 32.47115630145776, 32.06982734169106, 31.421843607968913, 30.92053153916419, 30.528508779591846, 30.199389512342062, 29.806527065694834]

只有几十年:

[{"y": 54592.30356899987, "x": "1910"}, {"y": 53188.00565025002, "x": "1920"}, {"y": 51162.91436399994, "x": "1930"}, {"y": 49196.769708000036, "x": "1940"}, {"y": 47209.01505074996, "x": "1950"}, {"y": 45107.75331424995, "x": "1960"}, {"y": 43475.02471700008, "x": "1970"}, {"y": 42572.71616149999, "x": "1980"}, {"y": 42225.77305650002, "x": "1990"}, {"y": 41766.024792750046, "x": "2000"}, {"y": 41249.815418250124, "x": "2010"}, {"y": 40416.34634075002, "x": "2020"}, {"y": 39771.53369224994, "x": "2030"}, {"y": 39267.29441775001, "x": "2040"}, {"y": 38843.964760249975, "x": "2050"}, {"y": 38338.64543824998, "x": "2060"}]

这是一个有两个按钮的jsfiddle:第一个添加所有类别数据集,第二个添加仅涵盖数十年的数据集:

http://jsfiddle.net/bozdoz/R82T3/

我尝试添加tickPixelInterval,如错误页面建议:http://www.highcharts.com/errors/19

我尝试过添加min,minTickInterval,maxTickInterval,tickInterval。我也尝试过调整plotOptions.series.pointInterval

http://api.highcharts.com/highcharts#plotOptions.series.pointInterval

我似乎无法将这些图表放在一起。 我认为因为它会将数十年转换为日期时间,但它不会将数据集转换为字符串作为x轴值。

任何帮助将不胜感激。感谢。

问题

我无法将两个数据集都放在同一个图表上。它似乎不能拥有数十年的数据集,而另一部分则是数十年和数字的混合体。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

1)类别 - 您可以使用标签格式化程序并检查它是否为数字http://api.highcharts.com/highstock#xAxis.labels.formatter

2)X值不能是字符串,它需要是数字。如果您希望使用日期时间类型的图表,可以使用pointStart / pointInterval,然后在xAxis上设置tickInterval(以毫秒为单位的时间)

答案 1 :(得分:1)

数据的名称与类别不对应,但与数组索引相对应。

因此,对于您的类别数组,“RNV-A”的x值将为0.“RNV-B”将为1,“RNV-C”将为2,依此类推。