javascript - 如何用Django-nvd3绘制圆环图

标签 javascript css nvd3.js

我正在使用 django-nvd3 作为可视化库,它们提供的支持图表数量有限。 有什么方法可以自定义文档中提供的饼图,使其成为圆环图。

def statistics(request):
context=RequestContext(request)


xdata = ["Apple", "Apricot", "Avocado", "Banana", "Boysenberries", "Blueberries", "Dates", "Grapefruit", "Kiwi", "Lemon"]
ydata = [52, 48, 160, 94, 75, 71, 490, 82, 46, 17]
chartdata = {'x': xdata, 'y': ydata}
charttype = "pieChart"
chartcontainer = 'piechart_container'
data = {
    'charttype': charttype,
    'chartdata': chartdata,
    'chartcontainer': chartcontainer,
    'extra': {
        'x_is_date': False,
        'x_axis_format': '',
        'tag_script_js': True,
        'jquery_on_ready': False,
    }
}
return render_to_response('App/statistics.html',data)

我可以通过这样设置来改变图表的大小:

{% include_container chartcontainer 426 400 %}

最佳答案

我自己只是偶然发现了这个问题。迟到总比不到好...

我刚刚查看了 donut 与普通 JS 的代码差异 (found here),并注意到额外的 4 个设置。

'labelThreshold':0.5,
'labelType':'percent',
'donut':True,
'donutRatio':0.35

所以我将它们放入 data 的“extra”部分,这似乎有效。

编辑:我注意到标签设置没有生效。 浏览了几次页面源代码和 nvd3_tags.py 后,我意识到您需要引用 labelType 并将它们嵌入另一个名为 chart_attr 的字典中。见下文。

def statistics(request):
    context=RequestContext(request)

    xdata = ["Apple", "Apricot", "Avocado", "Banana", "Boysenberries", "Blueberries", "Dates", "Grapefruit", "Kiwi", "Lemon"]
    ydata = [52, 48, 160, 94, 75, 71, 490, 82, 46, 17]
    chartdata = {'x': xdata, 'y': ydata}
    charttype = "pieChart"
    chartcontainer = 'piechart_container'
    data = {
        'charttype': charttype,
        'chartdata': chartdata,
        'chartcontainer': chartcontainer,
        'extra': {
            'x_is_date': False,
            'x_axis_format': '',
            'tag_script_js': True,
            'jquery_on_ready': False,
            'donut':True,
            'donutRatio':0.35,
            'chart_attr':{
                 'labelThreshold':0.5,
                 'labelType':'\"percent\"',
            }
        }
    }
    return render_to_response('App/statistics.html',data)

关于javascript - 如何用Django-nvd3绘制圆环图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30126304/

相关文章:

html - 将 child 置于比自身更窄的 parent 中

html - 如何通过 CSS 更改 nvd3 图表填充和描边颜色

javascript - NVD3 Angular 指令回调触发得太早

javascript - 如果没有,则需要在 nvd3 multiBarHorizo​​ntalChart 中垂直滚动。酒吧数量增加

来自类名的 CSS 属性值

html - 如何增加我的背景图片和位置按钮的高度

javascript - 模拟服务时 Jasmine 出现问题

javascript - Javascript 中的闭包(简单)

javascript - 按比例调整图像大小以适应 HTML5 Canvas

javascript - 将我的函数式 JavaScript 代码转换为面向对象的设计是否值得?