Javascript 定义';步骤';Zingchart中的属性使图形不可用
场景: 我能够使用Zingchart获得状态图,使用堆叠的hbar并在元素状态不变的情况下绘制数据间隔: 然而,我希望在提供时间的轴上有更多的分辨率 问题: 我无法增加Javascript 定义';步骤';Zingchart中的属性使图形不可用,javascript,plot,charts,zingchart,Javascript,Plot,Charts,Zingchart,场景: 我能够使用Zingchart获得状态图,使用堆叠的hbar并在元素状态不变的情况下绘制数据间隔: 然而,我希望在提供时间的轴上有更多的分辨率 问题: 我无法增加y轴(这是一个堆叠的hbar图,因此通常的x轴实际上是y轴) 如果我在scaleY字段中引入步骤:“1hour”,我将返回到历元0,这就是我得到的: 问题: 我做错了什么?我想: 在时间轴上有更多的时间参考 或者(这可能是另一个问题)可以通过鼠标(在工具提示中?)知道我在什么时候。因为我正在绘制时间增量,所以我丢失了状态更改
y轴
(这是一个堆叠的hbar图,因此通常的x轴
实际上是y轴
)
如果我在scaleY
字段中引入步骤:“1hour”
,我将返回到历元0,这就是我得到的:
问题:
我做错了什么?我想:
- 在时间轴上有更多的时间参考
- 或者(这可能是另一个问题)可以通过鼠标(在工具提示中?)知道我在什么时候。因为我正在绘制时间增量,所以我丢失了状态更改发生的实际时间。在这种特殊情况下,有没有直接的方法可以做到这一点?或者我是否必须携带另一个
作为间隔开始/结束的实际日期数据customValue
minValue
以绘制为我有数据的第一个历元减去1秒。
这是工作代码(未定义任何步骤属性):
zingchart.MODULESDIR=“/home/eballes/Work/backup/zingchart_test/zingchart_2.3.3/modules/”;
变量myConfig={
类型:“hbar”,
utc:是的,
标题:{
文本:“状态”
},
斯卡利:{
转换:{
类型:'日期',
全部:“%d/%M/%Y\n%H:%i:%s”,
},
最小值:1456693864000,
缩放:是的,
标签:{
“文本”:“时间”,
},
勾选:{
“线条颜色”:“黑色”,
“线宽”:“2px”,
“大小”:8,
},
最大项目:10,
是的,
项目:{
“字号”:10
},
},
scaleX:{
标签:{
“文本”:“项目”,
},
},
绘图:{
对,,
准确:错,
条宽:10,
规则:[
{
规则:“%data customValue==0”,
alpha:0,//透明
},
{
规则:“%data customValue==1”,
背景颜色:'#0000FF'//深蓝色
},
{
规则:“%data customValue==2”,
背景颜色:'#00FFFF'//浅蓝色
},
{
规则:“%data customValue==3”,
背景颜色:'#FF7F50'//橙色
},
{
规则:“%data customValue==4”,
背景颜色:'#FFFF00'//黄色
},
{
规则:“%data customValue==5”,
背景颜色:'#EE82EE'//紫色
},
{
规则:“%data customValue==6”,
背景颜色:'#00FF00'//绿色
},
{
规则:“%data customValue==7”,
背景颜色:'#FF0000'//红色
},
]
},
工具提示:{
jsRule:“CustomFn.formatTooltip()”,
},
系列:[
{
价值观:[
[1,1456693864000],
[2,1456693864000],
..//从1到36
[36,1456693864000],
],
“数据自定义值”:[0,0,0,0,0,0,
0,0,0,0,0,0,
0,0,0,0,0,0,
0,0,0,0,0,0,
0,0,0,0,0,0,
0,0,0,0,0,0],
},
{
价值观:[
[11, 32000], [12, 10270000], [14, 5033000], [18, 79000], [20, 43000], [24, 76000], [26, 4043000], [8, 33000], [9, 63000],
],
“数据自定义值”:[2,6,6,0,1,2,6,1,0,],
},
{
价值观:[
[14, 3000], [19, 20000], [26, 1000], [8, 86000], [9, 13000],
],
“数据自定义值”:[2,2,2,0,1,],
},
//所有间隔
]
};
CustomFn={};
CustomFn.formatTooltip=函数(p){
var小时=数学下限(p值/3600000);
var分钟数=数学下限((p.值%3600000)/60000);
var秒=(p.值%60000)/1000;
var tooltipText=“项:”+p.scaletext+“\n属性:”;
var hoursText=(小时==0)?“”:(小时+“小时”);
var minutesText=(分钟==0)?:(分钟+“m”);
var secondsText=(秒==0):“(秒+”s”);
tooltipText=tooltipText+hoursText+MinuteText+secondsText+“\n”;
tooltipText=tooltipText+“值:”+p['data-customValue'];
varα=70;
//我们不需要任何时间跳跃的工具提示
如果(小时数>300000){
tooltipText=“”;
α=0;
}
返回{
text:tooltipText,
背景色:“222”,
阿尔法:阿尔法,
}
};
zingchart.render({
id:'我的图表',
资料来源:myConfig,
身高:670,
宽度:“100%”
});
这是与整个示例的链接,不起作用。如果删除“1hour”步骤中的行,它将正常工作
有趣的是,step:20
工作正常。但我更喜欢以正常的方式,比如每小时一次
注意:为了提供更多的上下文,这个问题是另一个问题的延续。完全公开,我是ZingChart团队的成员
第一个问题是
step:'1hour'
我们的库将该字符串值解释为值0。这是因为字符串“1hour”与我们的任何关键字都不匹配,也不是数字类型。我们并不是简单地使用parseInt,所以它的计算结果不是1
如果您想要每小时一次的步骤,您可以以毫秒为单位进行步骤计数。这在我们的报告中有记录
对于显示比例值,我们有一个列表,允许您将比例值添加到工具提示中。在customFn.formatTooltip中,可以添加此行
...
tooltipText = tooltipText + "Value: " + p['data-customValue'];
tooltipText += '<br> %vv'
。。。
step:3600000
...
tooltipText = tooltipText + "Value: " + p['data-customValue'];
tooltipText += '<br> %vv'