美文网首页
数据可视化_echars

数据可视化_echars

作者: 魔曦帝天 | 来源:发表于2019-10-30 17:53 被阅读0次

echars教程
引入js文件

<script src="{% static 'js/echarts.min.js' %}"></script>

js代码
官方文档

<script type="text/javascript">
    // 基于准备好的dom,初始化echarts实例
    function assetPie(arr) {
        var myChart = echarts.init(document.getElementById('main'));

        // 指定图表的配置项和数据
        var option = {
            title: {
                text: '上架设备',
                subtext: '在线展示',
                x: 'center'
            },
            tooltip: {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            legend: {
                x: 'center',
                y: 'bottom',
                data: ['服务器', '路由器', '交换机', '防火墙', ]
            },
            toolbox: {
                show: true,
                feature: {
                    mark: {
                        show: true
                    },
                    dataView: {
                        show: true,
                        readOnly: false
                    },
                    magicType: {
                        show: true,
                        type: ['pie', 'funnel']
                    },
                    restore: {
                        show: true
                    },
                    saveAsImage: {
                        show: true
                    }
                }
            },
            calculable: true,
            series: [{

                name: '上架设备',
                type: 'pie',
                radius: [30, 110],
                center: ['75%', '50%'],
                roseType: 'area',
                data: arr  # 后端直接提供数据放入

            }]
        };
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    }
获取数据调用
    $(function () {
        $.getJSON(
            '/dash/',
            function (res) {
                assetPie(res)
            }
        )
    })
</script>

url

path('dash/', DashView.as_view()),  

views.py

class DashView(View):
    def get(self, request):
  # 聚合查询
        type_qs = (
            Asset.objects.filter(device_status_id=1)
            .values_list("device_type_id")
            .annotate(value=Count("device_type_id"))
        )
        type_value = list(dict(list(type_qs)).values())  # (3,1)
        type_key = list(dict(list(type_qs)).keys())
        # print(type_key)
        qst = []
        for m in type_key:
            qst .append(dict(Asset.device_type_choices).get(m))
            
        li = []
        a = zip(qst, type_value)
        for k, v in a:
            dic = {}
            dic["name"] = k
            dic["value"] = v
            li.append(dic)

        return JsonResponse(li, safe=False)


相关文章

网友评论

      本文标题:数据可视化_echars

      本文链接:https://www.haomeiwen.com/subject/izhavctx.html