节点填充的条形图是透明的,条形图仅在悬停时显示
Bar Charts filled by Node is transparent and the bar display only on hover
这是我正在尝试做的一个例子:
http://jsfiddle.net/4pb8uzt8/13/
$scope.myJson = {
'plot': {
'styles': ['#fff', 'red', 'pink']
},
'scale-x': {
'values': ['white', 'red', 'pink']
},
'type': 'bar',
'series': [{
'text': 'Product History Color',
'values': [2, 6, 8]
}]
}
我将 Zingchart (2.3.0) 与 AngularJs (1.4.7) 和 Ionic (1.1.0)
一起使用
到目前为止,我的应用程序中的所有图表都运行良好。但是当我尝试自定义条形填充时,我遇到了一个奇怪的行为。
栏是不可见的,当鼠标悬停时显示栏。试图找出它的来源,但没有发现任何异常。
有什么想法吗?
我使用的 json 与 JSFiddle 中显示的完全相同,它实际上是复制粘贴。
透明条
感谢您的宝贵时间。
更新
属性 fill: url(#...)
在我的 AngularJs 应用程序中无法识别,因为我不在根 url 中。
示例 app/graph,只有当我像这样将状态 'graph' 添加到属性中时它才会起作用:
url(graph#...)
那么我的问题是,有没有一种方法可以在不使用渐变的情况下实现我想要做的事情?
我想避免为我的应用程序的每个状态添加标签来解决问题。
正如 Z.Ben 在评论中指出的那样,无法访问渐变 (SVG) 看起来是 ZingChart 和路由 Angular 的一个问题。我会查看此问题,看看我们能否找到解决方案。 (我在 ZingChart 团队)。
至于临时解决方案,有几种方法可以解决这个问题。
1.更改渲染类型
ZingChart 默认使用 SVG 呈现图表。通过切换到备用渲染 'canvas',您应该能够在 angular 应用中毫无问题地渲染渐变,因为 canvas 直接在 canvas 元素上渲染渐变。
只需将渲染对象传递到您的指令中:
$scope.myRender = {
output :'canvas'
};
<zingchart id="chart-1" zc-render="myRender" zc-values="myValues"></zingchart>
2。使用规则设置颜色
不要使用默认添加渐变的 'styles' 属性,而是利用规则来定位每个系列中的特定节点。
$scope.myJson = {
'plot': {
'rules': [
{'rule': '%i == 0', 'backgroundColor': 'white'},
{'rule': '%i == 1', 'backgroundColor': 'red'},
{'rule': '%i == 2', 'backgroundColor': 'pink'},
]
},
'scale-x': {
'values': ['white', 'red', 'pink']
},
'type': 'bar',
'series': [{
'text': 'Product History Color',
'values': [2, 6, 8]
}]
}
http://www.zingchart.com/docs/basic-elements/create-javascript-rules/
这些解决方案中的任何一个都应该有效。
这是我正在尝试做的一个例子: http://jsfiddle.net/4pb8uzt8/13/
$scope.myJson = {
'plot': {
'styles': ['#fff', 'red', 'pink']
},
'scale-x': {
'values': ['white', 'red', 'pink']
},
'type': 'bar',
'series': [{
'text': 'Product History Color',
'values': [2, 6, 8]
}]
}
我将 Zingchart (2.3.0) 与 AngularJs (1.4.7) 和 Ionic (1.1.0)
一起使用到目前为止,我的应用程序中的所有图表都运行良好。但是当我尝试自定义条形填充时,我遇到了一个奇怪的行为。 栏是不可见的,当鼠标悬停时显示栏。试图找出它的来源,但没有发现任何异常。
有什么想法吗? 我使用的 json 与 JSFiddle 中显示的完全相同,它实际上是复制粘贴。
透明条
感谢您的宝贵时间。
更新
属性 fill: url(#...)
在我的 AngularJs 应用程序中无法识别,因为我不在根 url 中。
示例 app/graph,只有当我像这样将状态 'graph' 添加到属性中时它才会起作用:
url(graph#...)
那么我的问题是,有没有一种方法可以在不使用渐变的情况下实现我想要做的事情?
我想避免为我的应用程序的每个状态添加标签来解决问题。
正如 Z.Ben 在评论中指出的那样,无法访问渐变 (SVG) 看起来是 ZingChart 和路由 Angular 的一个问题。我会查看此问题,看看我们能否找到解决方案。 (我在 ZingChart 团队)。
至于临时解决方案,有几种方法可以解决这个问题。
1.更改渲染类型
ZingChart 默认使用 SVG 呈现图表。通过切换到备用渲染 'canvas',您应该能够在 angular 应用中毫无问题地渲染渐变,因为 canvas 直接在 canvas 元素上渲染渐变。
只需将渲染对象传递到您的指令中:
$scope.myRender = {
output :'canvas'
};
<zingchart id="chart-1" zc-render="myRender" zc-values="myValues"></zingchart>
2。使用规则设置颜色
不要使用默认添加渐变的 'styles' 属性,而是利用规则来定位每个系列中的特定节点。
$scope.myJson = {
'plot': {
'rules': [
{'rule': '%i == 0', 'backgroundColor': 'white'},
{'rule': '%i == 1', 'backgroundColor': 'red'},
{'rule': '%i == 2', 'backgroundColor': 'pink'},
]
},
'scale-x': {
'values': ['white', 'red', 'pink']
},
'type': 'bar',
'series': [{
'text': 'Product History Color',
'values': [2, 6, 8]
}]
}
http://www.zingchart.com/docs/basic-elements/create-javascript-rules/
这些解决方案中的任何一个都应该有效。