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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 人脸表情识别系统介绍——上篇(python实现,含UI界面及完整代码)

    人脸表情识别系统介绍——上篇(python实现,含UI界面及完整代码)摘要:这篇博文介绍基于深度卷积神经网络实现的人脸表情识别系统,系统程序由Keras,OpenCv,PyQt5的库实现,训练测试集采用fer2013表情库。如图系统可通过摄像头获取实时画面并识别其中的人脸表情,也可以通过读取图片识别,本文提供完整的程序文件并详细介绍其实现过程。博文要点如下:表情识别数据集、搭建表情识别的模型、数据增强的批量训练、系统UI界面的实现。点击跳转至博文涉及的全部文件下载页。

    2022年4月29日
    190
  • Java常见的8种数据结构「建议收藏」

    Java常见的8种数据结构「建议收藏」数据结构是指数据在计算机内存空间中或磁盘中的组织形式算法是完成特定任务的过程二分法查找r=2^ss:查找步数r查找范围幂函数s=log2®已知范围获取需要的次数对数算法复杂度使用O(N)函数进行标示主要是去除常数看运行时间受数据项个数的影响常见排序参考地址https://blog.csdn.net/muranfei/article/details/80923996栈对列优先级对列栈按照“后进先出”、“先进后出”的原则来存储数据,先插入的数…

    2022年7月7日
    20
  • 密码加密方式

    密码加密方式密码加密方式

    2022年4月22日
    77
  • 用git将项目文件上传至github

    用git将项目文件上传至github1,新建文件夹,在文件夹中新增txt文件2,下载githttps://git-scm.com/download/win3,点击文件右键(gitbasehere)打开git客户端4,根据https://jingyan.baidu.com/article/295430f18d33490c7e0050e4.html步骤安装直到出现登录github账号5,将需要上传的项目文件拖至新建的文件…

    2022年7月16日
    15
  • 风控模型的基础知识

    风控模型的基础知识风控模型根据设定的y变量与可获得的x变量不同,大致可以分为三类:即A卡,B卡,C卡。今天就让我们聊聊三者的区别。1、A卡(Applicationscorecard)A卡即申请评分模型,此类风控模型的目的在于预测申请时点(申请信用卡、申请贷款)未来一定时间内逾期的概率。Y变量的设定观察点为申请时点,定义为表现期内是否逾期。X变量一般只有客户填写的申请书信息,加上外部查询的数据与征信报告。2、B卡(Behaviorscorecard)B卡即行为评分模型,此类风控模型的目的在于预测使用时点(获得贷

    2022年5月30日
    34
  • python人机交互式编程_python运行的两种方式交互式

    python人机交互式编程_python运行的两种方式交互式在PyCharm下使用ipython交互式编程的方法目的:方便调试,查看中间结果,因为觉得设断点调试相对麻烦。【运行环境:macOS10.13.3,PyCharm2017.2.4】老手:选中代码行,Alt+Shift+E。或选中,鼠标右键-ExecuteLineinConsole。新手:1、安装ipython之后,查看PyCharm设置,确保Console的通用设置Us…

    2022年8月27日
    0

发表回复

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

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