zoukankan      html  css  js  c++  java
  • 统计图(折线,饼图等)避免多个统计图显示冲突

    chart.js链接:

    https://chartjs.bootcss.com/samples/

     引入的js:

    <script src="~/ace/assets/js/Chart.bundle.js"></script>
    <script src="~/ace/assets/js/utils.js"></script>
    //第一个统计图
    <div class="widget-main padding-4">
                                    <div style="100%;">
                                        <canvas id="canvas"></canvas>
                                    </div>
                                </div>
    //第二个统计图
     <div class="maincontent" style="">
                            <div id="canvas-holder" style="100%">
                                <canvas id="chart_area"></canvas>
                            </div>
                        </div>
    //第三个统计图
    <div class="maincontent" style="padding:0px 10px 15px 10px;">
                            <div class="subtitle3"><span>检测数据上传时间段统计</span></div>
                            <div id="container" style=" 100%;">
                                <canvas id="canvasthree"></canvas>
                            </div>
                        </div>
    html代码
    <script type="text/javascript">
    
    
        function Chartone() {
    //转json,得到数据
            var arr = JSON.parse('@Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewBag.WeeklyT))');
            var WeeklyTNum = JSON.parse('@Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewBag.WeeklyTNum))');
            console.log("第一个图");
            //console.log(WeeklyTNum);
            var config = {
                type: 'line',
                data: {
                    labels: arr,
                    //labels: ['diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou', 'diyizhou'],
                    datasets: [{
                        label: '检测数量',
                        backgroundColor: window.chartColors.red,
                        borderColor: window.chartColors.red,
                        data: WeeklyTNum,
                        fill: false,
                    }
                    ]
                },
                options: {
                    responsive: true,
                    title: {
                        display: true,
                        //text: 'Chart.js Line Chart'
                    },
                    tooltips: {
                        mode: 'index',
                        intersect: false,
                    },
                    hover: {
                        mode: 'nearest',
                        intersect: true
                    },
                    scales: {
                        xAxes: [{
                            display: true,
                            scaleLabel: {
                                display: true,
                                //labelString: 'Month'
                            }
                        }],
                        yAxes: [{
                            display: true,
                            scaleLabel: {
                                display: true,
                                //labelString: 'Value'
                            }
                        }]
                    }
                }
            };
            var ctx = document.getElementById('canvas').getContext('2d');
            window.myLine = new Chart(ctx, config);
        }
    
        function ChartTwo() {
            var CheckMoreCompany = JSON.parse('@Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewBag.CheckMoreCompany))');
            var CheckMoreTotal = JSON.parse('@Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewBag.CheckMoreTotal))');
    
            console.log("第二个图");
            var chart_area = $('#chart_area').css({ 'width': '100%' });
            var randomScalingFactor = function () {
                return Math.round(Math.random() * 100);
            };
    
            var configtwo = {
                type: 'doughnut',
                data: {
                    datasets: [{
                        data: CheckMoreTotal,
                        backgroundColor: [
                            window.chartColors.red,
                            window.chartColors.orange,
                            window.chartColors.yellow,
                            window.chartColors.green,
                            window.chartColors.blue,
                        ],
                        label: 'Dataset 1'
                    }],
                    labels: CheckMoreCompany
                },
                options: {
                    responsive: true,
                    legend: {
                        position: 'top',
                    },
                    title: {
                        display: true,
                        //text: 'Chart.js Doughnut Chart'
                    },
                    animation: {
                        animateScale: true,
                        animateRotate: true
                    }
                }
            };
    
            var ctxs = document.getElementById('chart_area').getContext('2d');
            window.myDoughnut = new Chart(ctxs, configtwo);
        }
    
        function ChartThree() {
            console.log("第三个图");
            //var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
            var UploadDateHour = JSON.parse('@Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewBag.UploadDateHour))');
            var UploadDateCountNum = JSON.parse('@Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewBag.UploadDateCountNum))');
            console.log("时间:" + UploadDateHour);
            console.log("数量:" + UploadDateCountNum);
            var color = Chart.helpers.color;
            var horizontalBarChartData = {
                labels: UploadDateHour,
                datasets: [
                {
                    label: "数量",
                    backgroundColor: color(window.chartColors.blue).alpha(0.5).rgbString(),
                    borderColor: window.chartColors.blue,
                    data: UploadDateCountNum
                }
                ]
    
            };
    
            var ctx = document.getElementById('canvasthree').getContext('2d');
            window.myHorizontalBar = new Chart(ctx, {
                type: 'horizontalBar',
                data: horizontalBarChartData,
                options: {
                    elements: {
                        rectangle: {
                            borderWidth: 2,
                        }
                    },
                    responsive: true,
                    legend: {
                        position: 'right',
                    }
                }
            });
        }
    
    
    //按顺序加载 已写好的chart显示方法 避免多个统计图显示冲突
        onload = function () {
            console.log("开始加载");
            Chartone();
            ChartTwo();
            ChartThree();
            //conshow();
        }
    </script>
    js代码
     
     public ActionResult s(string s)
            {
                //此处不能为空 本地测试测试 
                //s = "{\"sTable\":[ {\"RegionID\": \"1802010000\",\"BeginTime\": \"2021-12-07\",\"EndTime\": \"2021-12-09\",\"sTime\": \" 2021-12-19 \"}]}";
                
                if (s!=null)
                {
                    var js = JsonConvert.DeserializeObject<STables.STable>(s);
                    var sTable = js.sTable;
                    ViewBag.STables = sTable[0];
                    var bgT = sTable[0].BeginTime; ViewBag.bgT = bgT;
                    var EndT = sTable[0].EndTime; ViewBag.EndT = EndT;
                    var Rg = sTable[0].RegionID; ViewBag.Rg = Rg;
                    //string sTime = Convert.ToDateTime(sTable[0].sTime).ToString("yyyy-MM-dd");
                    string sTime = sTable[0].sTime.ToString();
                    ViewBag.sTime = sTime;
    
                    //获取TOKEN
                    string token = Common.FuFunctions.MD5("", "", "ant");
                    ViewBag.Token = token;
                    //触发api  
                    SMSService sm = new SMSService();
                    var sms = sm.SmsReportData(token, Rg, sTime);
    
                    //本地测试测试 
                    //var sms = "{\"Result\": {\"data\": {\"Table\": [{\"RegionName\": \"崇明区\",\"CheckNum\": \"15\",\"HGS\": \"15\",\"BHGS\": \"0\",\"HGL\": \"100.00\",\"Difference\": \"3.57%\",\"NowWeek\": \"2020年第50周\"}],\"Table1\": [{\"WeeklyT\": \"2020年第53周\",\"WeeklyTNum\": \"60\"},{\"WeeklyT\": \"52\",\"WeeklyTNum\": \"12\"},{\"WeeklyT\": \"51\",\"WeeklyTNum\": \"577\"},{\"WeeklyT\": \"50\",\"WeeklyTNum\": \"303\"},{\"WeeklyT\": \"49\",\"WeeklyTNum\": \"311\"},{\"WeeklyT\": \"48\",\"WeeklyTNum\": \"730\"},{\"WeeklyT\": \"47\",\"WeeklyTNum\": \"870\"},{\"WeeklyT\": \"46\",\"WeeklyTNum\": \"734\"},{\"WeeklyT\": \"45\",\"WeeklyTNum\": \"1272\"},{\"WeeklyT\": \"44\",\"WeeklyTNum\": \"1320\"},{\"WeeklyT\": \"43\",\"WeeklyTNum\": \"1339\"},{\"WeeklyT\": \"42\",\"WeeklyTNum\": \"1580\"},{\"WeeklyT\": \"41\",\"WeeklyTNum\": \"500\"},{\"WeeklyT\": \"40\",\"WeeklyTNum\": \"975\"},{\"WeeklyT\": \"39\",\"WeeklyTNum\": \"1718\"},{\"WeeklyT\": \"38\",\"WeeklyTNum\": \"1566\"},{\"WeeklyT\": \"37\",\"WeeklyTNum\": \"2230\"},{\"WeeklyT\": \"36\",\"WeeklyTNum\": \"1799\"},{\"WeeklyT\": \"35\",\"WeeklyTNum\": \"1612\"},{\"WeeklyT\": \"34\",\"WeeklyTNum\": \"1838\"}],\"Table2\": [{\"ProvinceNum\": \"0\",\"CityNum\": \"0\",\"DistrictNum\": \"1\",\"CountyNum\": \"0\",\"TownshipNum\": \"2\",\"TownNum\": \"16\",\"AutonomousPrefectureNum\": \"0\",\"TotalNum\": \"19\",\"CheckAccountNum\": \"33\",\"EnterpriseAccountNum\": \"1\"}],\"Table3\": [{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"新桥镇\",\"LinkPerson\": \"里斯\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"大桥镇\",\"LinkPerson\": \"王二\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"小桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"刘五\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"城桥镇\",\"LinkPerson\": \"张三\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"14\",\"TownshipCheckHGS\": \"14\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加16.67%\"},{\"TownshipName\": \"竖新镇\",\"LinkPerson\": \"竖新镇农产品质量安全监管站\",\"LinkTel\": \"\",\"TownshipCheckNum\": \"1\",\"TownshipCheckHGS\": \"1\",\"TownshipCheckBHGS\": \"0\",\"TownshipCheckHGL\": \"100.00\",\"TownshipCheckDifference\": \"增加0.00%\"}],\"Table4\": [{\"TopThreeSample\": \"韭菜\",\"TTSCheckTotal\": \"1\",\"TTSCheckHGS\": \"1\",\"TTSCheckBHGS\": \"5\",\"TTSCheckHGL\": \"50.00\",\"TTSCheckDifference\": \"增加10.00%\"},{\"TopThreeSample\": \"韭菜2\",\"TTSCheckTotal\": \"1\",\"TTSCheckHGS\": \"1\",\"TTSCheckBHGS\": \"0\",\"TTSCheckHGL\": \"60.00\",\"TTSCheckDifference\": \"增加16.67%\"},{\"TopThreeSample\": \"韭菜\",\"TTSCheckTotal\": \"1\",\"TTSCheckHGS\": \"1\",\"TTSCheckBHGS\": \"0\",\"TTSCheckHGL\": \"100.00\",\"TTSCheckDifference\": \"下降0.00%\"}],\"Table5\": [{\"BHGSampleRank\": \"草莓\",\"SampleRankCheckTotalNum\": \"14\",\"SampleRankCheckHGS\": \"14\",\"SampleRankCheckBHGS\": \"0\",\"SampleRankCheckHGL\": \"100.00\"},{\"BHGSampleRank\": \"韭菜\",\"SampleRankCheckTotalNum\": \"1\",\"SampleRankCheckHGS\": \"1\",\"SampleRankCheckBHGS\": \"0\",\"SampleRankCheckHGL\": \"100.00\"}],\"Table6\": [{\"BHGCheckProjectRank\": \"烯酰吗啉\",\"CPRankCheckTotalNum\": \"3\",\"CPRankCheckHGS\": \"3\",\"CPRankCheckBHGS\": \"0\",\"CPRankCheckHGL\": \"100.00\"},{\"BHGCheckProjectRank\": \"克百威\",\"CPRankCheckTotalNum\": \"3\",\"CPRankCheckHGS\": \"3\",\"CPRankCheckBHGS\": \"0\",\"CPRankCheckHGL\": \"100.00\"},{\"BHGCheckProjectRank\": \"菊酯类农药残留\",\"CPRankCheckTotalNum\": \"3\",\"CPRankCheckHGS\": \"3\",\"CPRankCheckBHGS\": \"0\",\"CPRankCheckHGL\": \"100.00\"},{\"BHGCheckProjectRank\": \"腐霉利\",\"CPRankCheckTotalNum\": \"1\",\"CPRankCheckHGS\": \"1\",\"CPRankCheckBHGS\": \"0\",\"CPRankCheckHGL\": \"100.00\"},{\"BHGCheckProjectRank\": \"毒死蜱\",\"CPRankCheckTotalNum\": \"2\",\"CPRankCheckHGS\": \"2\",\"CPRankCheckBHGS\": \"0\",\"CPRankCheckHGL\": \"100.00\"}],\"Table7\": [{\"CheckMoreCompany\": \"张三\",\"CheckMoreTotal\": \"14\"},{\"CheckMoreCompany\": \"竖新镇农产品质量安全监管站\",\"CheckMoreTotal\": \"1\"}],\"Table8\": [{\"UploadDateHour\": \"16:00\",\"UploadDateCountNum\": \"14\"},{\"UploadDateHour\": \"9\",\"UploadDateCountNum\": \"1\"}],\"Table9\": [{\"NotUploadCompany\": \"堡镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"长兴镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"陈家镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"城桥镇农产品安全监管站\"},{\"NotUploadCompany\": \"崇明区农业农村委员会管理员\"},{\"NotUploadCompany\": \"崇明区现代农业园区\"},{\"NotUploadCompany\": \"东平镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"港西镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"港沿镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"横沙乡农产品质量安全监管站\"},{\"NotUploadCompany\": \"建设镇农产品安全监管站\"},{\"NotUploadCompany\": \"绿华镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"庙镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"三星镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"上海泛信农业种植专业合作社\"},{\"NotUploadCompany\": \"上海建星蔬菜专业合作社\"},{\"NotUploadCompany\": \"上海日鑫农业种植专业合作社\"},{\"NotUploadCompany\": \"上海市崇明区动物疫病预防控制中心\"},{\"NotUploadCompany\": \"上海市崇明区农业技术推广中心\"},{\"NotUploadCompany\": \"上海市崇明区农业农村委员会执法大队\"},{\"NotUploadCompany\": \"上海市崇明区蔬菜科学技术推广站\"},{\"NotUploadCompany\": \"上海市崇明区水产技术推广站\"},{\"NotUploadCompany\": \"上海享农果蔬专业合作社\"},{\"NotUploadCompany\": \"上海一农果蔬专业合作社\"},{\"NotUploadCompany\": \"上海由由农业科技有限公司\"},{\"NotUploadCompany\": \"上海玉英蔬果专业合作社\"},{\"NotUploadCompany\": \"上海正泰农业科技有限公司\"},{\"NotUploadCompany\": \"向化镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"新村乡农产品质量安全监管站\"},{\"NotUploadCompany\": \"新海镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"新河镇农产品质量安全监管站\"},{\"NotUploadCompany\": \"中兴镇农产品质量监督站\"}]}}}";
                                    
                    if (!string.IsNullOrEmpty(sms))
                    {
                        var json = JsonConvert.DeserializeObject<SMSModels.Model>(sms);
                        //var sjson = JObject.Parse(sms);   
                  
                        //Table1  统计图
                        if (json.Result.data.Table1 != null && json.Result.data.Table1.Count > 0)
                        {
                            ViewBag.tb = json.Result.data.Table1;
                            var a = json.Result.data.Table1;
                            ViewBag.WeeklyT = a.Select(g => g.WeeklyT).ToList();
                            ViewBag.WeeklyTNum = a.Select(g => g.WeeklyTNum).ToList();
                        }
                        else
                        {
                            ViewBag.tb = null;
                            ViewBag.WeeklyT = "";
                            ViewBag.WeeklyTNum = "0";
    
                        }
                        //Table7 统计图 
                        if (json.Result.data.Table7 != null && json.Result.data.Table7.Count > 0)
                        {
                            ViewBag.tb7 = json.Result.data.Table7;
                              ViewBag.CheckMoreCompany = json.Result.data.Table7.Select(b=>b.CheckMoreCompany).ToList();
                              ViewBag.CheckMoreTotal = json.Result.data.Table7.Select(b => b.CheckMoreTotal).ToList();
                        }
                        else
                        {
                            ViewBag.tb7 = null;
                            ViewBag.CheckMoreCompany = "";
                            ViewBag.CheckMoreTotal = "";
                        }
                        //Table8 统计图 
                        if (json.Result.data.Table8 != null && json.Result.data.Table8.Count > 0)
                        {
                            ViewBag.tb8 = json.Result.data.Table8;
                            ViewBag.UploadDateHour = json.Result.data.Table8.Select(b => b.UploadDateHour).ToList();
                            ViewBag.UploadDateCountNum = json.Result.data.Table8.Select(b => b.UploadDateCountNum).ToList();
                        }
                        else { 
                            ViewBag.tb8 = null;
                            ViewBag.UploadDateHour = "";
                            ViewBag.UploadDateCountNum = "";
                        
                        }
                      
    
                    }
                }
               
    
                return View();
            }
    C# 后台代码
  • 相关阅读:
    数据结构:树[data struct: tree]
    关于计算机学科的一些期刊和会议(转)
    这个世界究竟是怎么了
    [思考]怎么在C#中加入新功能
    vsta相关
    Practical numerical methods with C#
    C# (CSharp)中的foreach,for关键词
    代码生成相关
    没有可用于当前位置的源代码 解决办法
    access数据库删除两个日期之间 的数据 SQL语句
  • 原文地址:https://www.cnblogs.com/fuyao/p/15659927.html
Copyright © 2011-2022 走看看