Visifire图表

Visifire图表引用DLL:WPFToolkitWPFVisifire.Charts.dllWPFVisifire.Gauges.dll1、柱状图代码:publicvoidBindChart1(){System.Threading.Tasks.Task.Factory.StartNew(()=>{try…

大家好,又见面了,我是你们的朋友全栈君。

引用DLL:

WPFToolkit

WPFVisifire.Charts.dll

WPFVisifire.Gauges.dll

1、柱状图

代码:

Visifire图表
Visifire图表

public void BindChart1()
{
    System.Threading.Tasks.Task.Factory.StartNew(() =>
    {
        try
        {
            List<string> colorList = new List<string>();
            List<string> fjList = new List<string>(); ;
            List<double> qyonList = new List<double>();
            List<double> qyoutList = new List<double>();
            int outNum = 0;
            int onNum = 0;
            int totalNum = 0;
            string errMsg = string.Empty;
            bool result = false;

            result = HI.Get<ICameraService>().GetCameraOnline(out colorList, out fjList, out qyonList, out qyoutList, out outNum, out onNum, out totalNum, out errMsg);

            Dispatcher.Invoke(new Action(() =>
            {
                txtOnlineCamera.Text = onNum.ToString();
                txtOutlineCamera.Text = outNum.ToString();
                txtTotalCamera.Text = totalNum.ToString();

                Chart chart = new Chart();

                #region 样式
                //样式
                chart.ThemeEnabled = true;
                chart.Theme = "Theme2";
                chart.BorderThickness = new Thickness(0);
                chart.Background = new SolidColorBrush(Colors.Transparent);
                chart.ShadowEnabled = false;
                chart.View3D = false;
                chart.AnimationEnabled = false;

                PlotArea pa = new PlotArea();
                pa.Background = new SolidColorBrush(Colors.Transparent);
                pa.ShadowEnabled = false;
                pa.BorderThickness = new Thickness(0);
                chart.PlotArea = pa;
                #endregion

                //绑定Chart
                chart.Series.Clear();
                chart.Titles.Clear();

                chart.Width = this.chart1Grid.Width - 10;
                chart.Height = this.chart1Grid.Height - 10;

                DataSeries dataSeries = new DataSeries();
                DataPoint datapoint = null;

                #region 颜色
                SolidColorBrush[] brushArr = new SolidColorBrush[8];
                brushArr[0] = new SolidColorBrush(Color.FromRgb(237, 133, 140));
                brushArr[1] = new SolidColorBrush(Color.FromRgb(178, 150, 233));
                brushArr[2] = new SolidColorBrush(Color.FromRgb(16, 227, 230));
                brushArr[3] = new SolidColorBrush(Color.FromRgb(176, 235, 124));
                brushArr[4] = new SolidColorBrush(Color.FromRgb(237, 133, 140));
                brushArr[5] = new SolidColorBrush(Color.FromRgb(178, 150, 233));
                brushArr[6] = new SolidColorBrush(Color.FromRgb(16, 227, 230));
                brushArr[7] = new SolidColorBrush(Color.FromRgb(176, 235, 124));
                #endregion

                #region 数据
                for (int i = 0; i < fjList.Count; i++)
                {
                    int colorIndex = i % brushArr.Length;
                    datapoint = new DataPoint();
                    datapoint.AxisXLabel = fjList[i];
                    datapoint.YValue = qyonList[i];
                    datapoint.Color = brushArr[colorIndex];
                    datapoint.Tag = fjList[i];
                    datapoint.LabelEnabled = true;
                    datapoint.LabelStyle = LabelStyles.Inside;
                    datapoint.LabelFontColor = new SolidColorBrush(Colors.White);
                    //datapoint.MouseLeftButtonDown += new MouseButtonEventHandler(datapoint_MouseLeftButtonDown); //DataPoint被点击执行事件 
                    dataSeries.DataPoints.Add(datapoint);
                }
                #endregion

                //绑定当鼠标放上去显示的信息     
                chart.Series.Add(dataSeries);

                #region 图表标题
                //图表标题
                Title title = new Title();
                title.Text = "摄像头在线率";
                title.FontColor = new SolidColorBrush(Colors.White);
                chart.Titles.Add(title);
                #endregion

                #region 坐标样式
                AxisLabels yLabel = new AxisLabels();
                yLabel.FontColor = new SolidColorBrush(Colors.White); //y轴刻度文本信息颜色

                ChartGrid yGrid = new ChartGrid();// 设置y轴的横向刻度虚线
                yGrid.Enabled = true;
                yGrid.LineColor = new SolidColorBrush(Colors.White);

                Axis yAxis = new Axis();
                yAxis.Enabled = true; //是否显示Y轴刻度、文本
                yAxis.Grids.Add(yGrid);
                yAxis.AxisMinimum = 0;  //y轴刻度最小值
                yAxis.AxisMaximum = 100;  //y轴刻度最大值
                yAxis.Suffix = "%"; //"给刻度添加后缀 如%";
                yAxis.Interval = 20;    //设置y轴刻度的增量 -- 即2个刻度值之间的的间隔
                yAxis.IntervalType = IntervalTypes.Number;
                yAxis.AxisLabels = yLabel;
                chart.AxesY.Add(yAxis);

                AxisLabels xLabel = new AxisLabels();
                xLabel.FontColor = new SolidColorBrush(Colors.White); //x轴刻度文本信息颜色

                ChartGrid xGrid = new ChartGrid();//设置x轴的纵向刻度虚线
                xGrid.Enabled = false;

                Axis xAxis = new Axis();
                xAxis.Enabled = true; //是否显示X轴刻度、文本
                xAxis.AxisLabels = xLabel;
                xAxis.Grids.Add(xGrid);

                chart.AxesX.Add(xAxis);
                #endregion

                this.chart1Grid.Children.Clear();
                this.chart1Grid.Children.Add(chart);
            }));
        }
        catch
        {

        }
    });
}

View Code

效果图:

Visifire图表

2、堆积柱状图

 代码:

Visifire图表
Visifire图表

public void PartolTaskChart()
{
    System.Threading.Tasks.Task.Factory.StartNew(() =>
    {
        try
        {
            #region 数据
            List<Dictionary<string, int>> lsDic = HI.Get<SunCreate.CombatPlatform.Contract.IVideoPatrol>().GetTackRecordAnalysisMainPage(DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1), "1");
            #endregion

            Dispatcher.Invoke(new Action(() =>
            {
                Chart chart = new Chart();

                #region 样式
                //样式
                chart.ThemeEnabled = true;
                chart.Theme = "Theme2";
                chart.Background = new SolidColorBrush(Colors.Transparent);
                chart.BorderThickness = new Thickness(0);
                chart.AnimationEnabled = false;
                chart.View3D = false;

                PlotArea pa = new PlotArea();
                pa.Background = new SolidColorBrush(Colors.Transparent);
                pa.ShadowEnabled = false;
                pa.BorderThickness = new Thickness(0);
                chart.PlotArea = pa;
                #endregion

                #region 颜色
                SolidColorBrush[] brushArr = new SolidColorBrush[8];
                brushArr[0] = new SolidColorBrush(Color.FromRgb(237, 133, 140));
                brushArr[1] = new SolidColorBrush(Color.FromRgb(178, 150, 233));
                brushArr[2] = new SolidColorBrush(Color.FromRgb(16, 227, 230));
                brushArr[3] = new SolidColorBrush(Color.FromRgb(176, 235, 124));
                brushArr[4] = new SolidColorBrush(Color.FromRgb(237, 133, 140));
                brushArr[5] = new SolidColorBrush(Color.FromRgb(178, 150, 233));
                brushArr[6] = new SolidColorBrush(Color.FromRgb(16, 227, 230));
                brushArr[7] = new SolidColorBrush(Color.FromRgb(176, 235, 124));
                #endregion

                #region 数据
                #region 巡查次数
                DataSeries dataSeries = new DataSeries();
                dataSeries.RenderAs = RenderAs.StackedColumn;
                dataSeries.ShowInLegend = false;
                dataSeries.Color = brushArr[0];

                foreach (string key in lsDic[0].Keys)
                {
                    //设置点  
                    int val = lsDic[0][key];
                    DataPoint point = new DataPoint();
                    point.ToolTipText = "巡查次数:" + val;
                    point.YValue = val;
                    point.AxisXLabel = key.Replace("合肥市公安局", string.Empty);
                    point.Tag = key.Replace("合肥市公安局", string.Empty);
                    dataSeries.DataPoints.Add(point);
                }

                chart.Series.Add(dataSeries);
                #endregion

                #region 截图张数
                dataSeries = new DataSeries();
                dataSeries.RenderAs = RenderAs.StackedColumn;
                dataSeries.ShowInLegend = false;
                dataSeries.Color = brushArr[1];

                foreach (string key in lsDic[1].Keys)
                {
                    //设置点  
                    int val = lsDic[1][key];
                    DataPoint point = new DataPoint();
                    point.ToolTipText = "截图张数:" + val;
                    point.YValue = val;
                    point.AxisXLabel = key.Replace("合肥市公安局", string.Empty);
                    point.Tag = key.Replace("合肥市公安局", string.Empty);
                    dataSeries.DataPoints.Add(point);
                }

                chart.Series.Add(dataSeries);
                #endregion

                #region 价值图片
                dataSeries = new DataSeries();
                dataSeries.RenderAs = RenderAs.StackedColumn;
                dataSeries.ShowInLegend = false;
                dataSeries.Color = brushArr[2];

                foreach (string key in lsDic[2].Keys)
                {
                    //设置点
                    int val = lsDic[2][key];
                    DataPoint point = new DataPoint();
                    point.ToolTipText = "价值图片:" + val;
                    point.YValue = val;
                    point.AxisXLabel = key.Replace("合肥市公安局", string.Empty);
                    point.Tag = key.Replace("合肥市公安局", string.Empty);
                    dataSeries.DataPoints.Add(point);
                }

                chart.Series.Add(dataSeries);
                #endregion
                #endregion

                #region 图表标题
                //图表标题
                Title title = new Title();
                title.Text = "巡查执行情况";
                title.FontColor = new SolidColorBrush(Colors.White);
                chart.Titles.Add(title);
                #endregion

                #region 坐标样式
                AxisLabels yLabel = new AxisLabels();
                yLabel.FontColor = new SolidColorBrush(Colors.White); //y轴刻度文本信息颜色

                ChartGrid yGrid = new ChartGrid();// 设置y轴的横向刻度虚线
                yGrid.Enabled = true;
                yGrid.LineColor = new SolidColorBrush(Colors.White);

                Axis yAxis = new Axis();
                yAxis.Enabled = true; //是否显示Y轴刻度、文本
                yAxis.Grids.Add(yGrid);
                yAxis.AxisMinimum = 0;  //y轴刻度最小值
                //yAxis.AxisMaximum = 100;  //y轴刻度最大值
                //yAxis.Suffix = "%"; //"给刻度添加后缀 如%";
                //yAxis.Interval = 20;    //设置y轴刻度的增量 -- 即2个刻度值之间的的间隔
                yAxis.IntervalType = IntervalTypes.Number;
                yAxis.AxisLabels = yLabel;
                chart.AxesY.Add(yAxis);

                AxisLabels xLabel = new AxisLabels();
                xLabel.FontColor = new SolidColorBrush(Colors.White); //x轴刻度文本信息颜色

                ChartGrid xGrid = new ChartGrid();//设置x轴的纵向刻度虚线
                xGrid.Enabled = false;

                Axis xAxis = new Axis();
                xAxis.Enabled = true; //是否显示X轴刻度、文本
                xAxis.AxisLabels = xLabel;
                xAxis.Grids.Add(xGrid);

                chart.AxesX.Add(xAxis);
                #endregion

                this.gridPartolTaskChart.Children.Clear();
                this.gridPartolTaskChart.Children.Add(chart);
            }));
        }
        catch
        {

        }
    });
}

View Code

效果图:

Visifire图表

3、雷达图

代码:

Visifire图表
Visifire图表

public void ShowRadar()
{
    try
    {
        Chart chart = new Chart();

        //样式
        chart.ThemeEnabled = true;
        chart.Theme = "Theme2";
        chart.Background = new SolidColorBrush(Colors.Transparent);
        chart.BorderThickness = new Thickness(0);

        PlotArea pa = new PlotArea();
        pa.Background = new SolidColorBrush(Colors.Transparent);
        pa.ShadowEnabled = false;
        pa.BorderThickness = new Thickness(0);
        chart.PlotArea = pa;

        #region 颜色
        SolidColorBrush[] brushArr = new SolidColorBrush[8];
        brushArr[0] = new SolidColorBrush(Color.FromArgb(128, 237, 133, 140));
        brushArr[1] = new SolidColorBrush(Color.FromArgb(128, 178, 150, 233));
        brushArr[2] = new SolidColorBrush(Color.FromArgb(128, 16, 227, 230));
        brushArr[3] = new SolidColorBrush(Color.FromArgb(128, 176, 235, 124));
        brushArr[4] = new SolidColorBrush(Color.FromArgb(128, 237, 133, 140));
        brushArr[5] = new SolidColorBrush(Color.FromArgb(128, 178, 150, 233));
        brushArr[6] = new SolidColorBrush(Color.FromArgb(128, 16, 227, 230));
        brushArr[7] = new SolidColorBrush(Color.FromArgb(128, 176, 235, 124));
        #endregion

        #region 数据
        //设置类型为雷达图  
        DataSeries dataSeries = new DataSeries();
        dataSeries.RenderAs = RenderAs.Radar;
        dataSeries.ShowInLegend = false;
        dataSeries.Color = brushArr[0];

        //设置点  
        DataPoint point = new DataPoint();
        point.YValue = 20;
        point.AxisXLabel = "高新分局";
        point.Tag = "高新分局";
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 50;
        point.AxisXLabel = "包河分局";
        point.Tag = "包河分局";
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 70;
        point.AxisXLabel = "新站分局";
        point.Tag = "新站分局";
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 10;
        point.AxisXLabel = "经开分局";
        point.Tag = "经开分局";
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 50;
        point.AxisXLabel = "蜀山分局";
        point.Tag = "蜀山分局";
        dataSeries.DataPoints.Add(point);

        chart.Series.Add(dataSeries);
        #endregion

        #region 数据
        //设置类型为雷达图  
        dataSeries = new DataSeries();
        dataSeries.RenderAs = RenderAs.Radar;
        dataSeries.ShowInLegend = false;
        dataSeries.Color = brushArr[1];

        //设置点  
        point = new DataPoint();
        point.YValue = 33;
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 57;
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 25;
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 98;
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 70;
        dataSeries.DataPoints.Add(point);

        chart.Series.Add(dataSeries);
        #endregion

        #region 数据
        //设置类型为雷达图  
        dataSeries = new DataSeries();
        dataSeries.RenderAs = RenderAs.Radar;
        dataSeries.ShowInLegend = false;
        dataSeries.Color = brushArr[2];

        //设置点  
        point = new DataPoint();
        point.YValue = 95;
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 88;
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 50;
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 60;
        dataSeries.DataPoints.Add(point);

        point = new DataPoint();
        point.YValue = 83;
        dataSeries.DataPoints.Add(point);

        chart.Series.Add(dataSeries);
        #endregion

        AxisLabels yLabel = new AxisLabels();
        yLabel.FontColor = new SolidColorBrush(Colors.Transparent); //y轴刻度文本信息颜色

        ChartGrid yGrid = new ChartGrid();// 设置y轴的横向刻度虚线
        yGrid.Enabled = true;
        yGrid.LineColor = new SolidColorBrush(Colors.White);

        Axis yAxis = new Axis();
        yAxis.Enabled = true; //是否显示Y轴刻度、文本
        yAxis.Grids.Add(yGrid);
        yAxis.AxisMinimum = 0;  //y轴刻度最小值
        yAxis.AxisMaximum = 100;  //y轴刻度最大值
        //yAxis.Suffix = "%"; //"给刻度添加后缀 如%";
        yAxis.Interval = 25;    //设置y轴刻度的增量 -- 即2个刻度值之间的的间隔
        yAxis.IntervalType = IntervalTypes.Number;
        yAxis.AxisLabels = yLabel;
        chart.AxesY.Add(yAxis);

        AxisLabels xLabel = new AxisLabels();
        xLabel.FontColor = new SolidColorBrush(Colors.White); //x轴刻度文本信息颜色
        xLabel.Background = new SolidColorBrush(Colors.Transparent);

        ChartGrid xGrid = new ChartGrid();//设置x轴的纵向刻度虚线
        xGrid.Enabled = false;

        Axis xAxis = new Axis();
        xAxis.Enabled = true; //是否显示X轴刻度、文本
        xAxis.AxisLabels = xLabel;
        xAxis.Grids.Add(xGrid);

        chart.AxesX.Add(xAxis);

        this.radarGrid.Children.Add(chart);
    }
    catch { }
}

View Code

效果图:

Visifire图表

 

补充:

datapoint.LightingEnabled = false; // 照明功能
datapoint.SnapsToDevicePixels = true; // 像素对齐

 

转载于:https://www.cnblogs.com/s0611163/p/7094729.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162782.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月21日 上午8:16
下一篇 2022年7月21日 上午8:16


相关推荐

  • linux17:时间间隔计算脚本练习——距离你的生日还有多少天

    linux17:时间间隔计算脚本练习——距离你的生日还有多少天需求距离一个未来的日子还有多少天距离一个过去的日子过去多少天#!/bin/bash#name——timeDistance.sh#function#input a date, to calculate how many days to this day#2022.1.18 daxiongread -p “please input your date like YYYYMMDD ex>20150716 : ” date2#test whether or not have

    2022年8月11日
    10
  • mysql锁表原因及如何处理_表被锁了还能查询

    mysql锁表原因及如何处理_表被锁了还能查询1、锁表发生在insert update、delete中  2、锁表的原理是数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发生commite或者回滚或者退出数据库用户 3、锁表的原因  第一、A程序执行了对tableA的insert,并还未commite时,B程序也对tableA进行insert则此时会发生资源正忙的异常就是锁表 第二、锁表常…

    2022年8月23日
    5
  • 概率论中的PDF,PMF,CDF区别和联系

    概率论中的PDF,PMF,CDF区别和联系1. PDF:概率密度函数(probabilitydensityfunction),在数学中,连续型随机变量的概率密度函数(在不至于混淆时可以简称为密度函数)是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数。本身不是概率,取值积分后才是概率。2. PMF:概率质量函数(probabilitymassfunction),在概率论中,概率质量函数

    2022年5月23日
    91
  • [教程] 《Mysql 实战 45 讲》[通俗易懂]

    [教程] 《Mysql 实战 45 讲》

    2022年2月17日
    139
  • PCM设备是做什么的? PCM作用是什么?

    PCM设备是做什么的? PCM作用是什么?PCM 可以提供用户从 2M 到 155M 速率的数字数据专线业务 也可以提供话音 图象传送 远程教学等其他业务 那么 PCM 设备是做什么的 PCM 作用是什么 接下来我们就跟随飞畅科技的小编一起来看看吧 PCM 的含义 1 PCM PulseCodeMod 的缩写 即是 脉冲编码调制 2 脉冲编码调制的作用 将模拟的信号经过抽样 量化 编码转化成标准的数字信号 PCM 设备的作用 1 将低速业务转换成数字信号 并装入 64kbit s 通道 2 将 30 路 64kbit s 通道复接成 2M

    2026年3月17日
    2
  • AI狂飙,“股王”腾讯归来

    AI狂飙,“股王”腾讯归来

    2026年3月13日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号