使用C#画图(饼图折线图)

public PlaceHolder PlaceHolder1; //显示图像的控件

各个图像的类别名称如下:

PictureType    图形种类    5    chChartTypeBarClustered    簇状条形图    0    NULL

PictureType    图形种类    7    chChartTypeBarClustered3D    三维簇状条形图    0    NULL

PictureType    图形种类    6    chChartTypeBarStacked    堆积条形图    0    NULL

PictureType    图形种类    8    chChartTypeBarStacked3D    三维堆积条形图    0    NULL

PictureType    图形种类    1    chChartTypeColumnClustered    簇状柱形图    0    NULL

PictureType    图形种类    3    chChartTypeColumnClustered3D    三维簇状柱形图    0    NULL

PictureType    图形种类    2    chChartTypeColumnStacked    堆积柱状图    1    NULL

PictureType    图形种类    4    chChartTypeColumnStacked3D    三维堆积柱形图    0    NULL

PictureType    图形种类    13    chChartTypeLine    折线图    0    NULL

PictureType    图形种类    15    chChartTypeLineMarkers    数据点折线图    0    NULL

PictureType    图形种类    14    chChartTypeLineStacked    堆积折线图    0    NULL

PictureType    图形种类    16    chChartTypeLineStackedMarkers    堆积数据点折线图    0    NULL

PictureType    图形种类    17    chChartTypePie    饼图    1    NULL

PictureType    图形种类    19    chChartTypePie3D    三维饼图    0    NULL

PictureType    图形种类    18    chChartTypePieExploded    分离型饼图    0    NULL

PictureType    图形种类    20    chChartTypePieExploded3D    分离型三维饼图    0    NULL

PictureType    图形种类    9    chChartTypeSmoothLine    平滑线图    0    NULL

PictureType    图形种类    10    chChartTypeSmoothLineMarkers    数据点平滑线图    0    NULL

PictureType    图形种类    11    chChartTypeSmoothLineStacked    堆积平滑线图    0    NULL

PictureType    图形种类    12    chChartTypeSmoothLineStackedMarkers    堆积数据平滑线图    0    NULL

取图像的方法如下:

/// </summary>
        /// <param name="dbDtViewWrk">传递的数据</param>
        /// <param name="strAbsolutePath">绝对路径</param>
        /// <param name="strRelativePath">相对路径</param>
        /// <param name="ChartType">要画的图格式(饼图或者折线图等)</param>
        /// <param name="strTitle">统计名称</param>
public void PaintToImage(DataTable dbDtViewWrk, string strAbsolutePath, string strRelativePath, ChartChartTypeEnum ChartType, string strTitle)

        {
            string strSeriesName = "图例";
            //存放项目
            string[] ItemsName = new string[dbDtViewWrk.Rows.Count];
            //存放数据
            string[] ItemsCount = new string[dbDtViewWrk.Rows.Count];
            //刻度单位
            int iUnit = 1;
            //最大值
            int iMaxValue = 0;
            string strXdata = String.Empty;
            string strYdata = String.Empty;

                //为数组赋值
                for (int i = 0; i < dbDtViewWrk.Rows.Count; i++)
                {
                    ItemsName[i] = dbDtViewWrk.Rows[i][0].ToString();  //要统计的字段名字
                    ItemsCount[i] = dbDtViewWrk.Rows[i][5].ToString();//要统计的字段数据
                }
            //为x轴指定特定字符串,以便显示数据
            // string strXdata = String.Empty;
            foreach (string strData in ItemsName)
            {
                strXdata += strData + "\t";
            }
            // string strYdata = String.Empty;
            //为y轴指定特定的字符串,以便与x轴相对应
            foreach (string strValue in ItemsCount)
            {
                strYdata += strValue + "\t";
                if (int.Parse(strValue) > iMaxValue)
                {
                    iMaxValue = int.Parse(strValue);
                }
            }
            if (iMaxValue > 20)
            {
                iUnit = iMaxValue / 10;
            }
            //创建ChartSpace对象来放置图表
            ChartSpace laySpace = new ChartSpaceClass();

            //在ChartSpace对象中添加图表
            ChChart InsertChart = laySpace.Charts.Add(0);

            //底座颜色
            InsertChart.PlotArea.Interior.Color = "white";

            //指定绘制图表的类型。类型可以通过OWC.ChartChartTypeEnum枚举值得到
            InsertChart.Type = ChartType;//柱形图

            //指定图表是否需要图例标注
            InsertChart.HasLegend = true;
            InsertChart.BarWidth = 0;
            InsertChart.Legend.Position = ChartLegendPositionEnum.chLegendPositionBottom;

            InsertChart.HasTitle = true;//为图表添加标题
            InsertChart.Title.Caption = strTitle;//标题名称

            //为x,y轴添加图示说明
            if (ChartType.ToString().IndexOf("ChartTypePie") == -1)
            {
                InsertChart.Axes[0].Font.Size = 11; //X轴

                InsertChart.Axes[1].Font.Size = 11; //Y轴
                InsertChart.Legend.Font.Size = 11;
                InsertChart.Axes[0].HasTitle = true;
                InsertChart.Axes[0].Title.Caption = "";//月份
                InsertChart.Axes[1].HasTitle = true;
                //InsertChart.Axes[1].Scaling.SplitMinimum = 200;
                InsertChart.Axes[1].Title.Caption = "数量";
                InsertChart.Axes[1].MajorUnit = iUnit;  //刻度单位设置
                InsertChart.Axes[1].Scaling.Minimum = 0;//最小刻度=0
            }

            //添加一个series系列
            InsertChart.SeriesCollection.Add(0);

            //给定series系列的名字
            InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName);

            //给定分类
            strXdata = strXdata.Substring(0, strXdata.Length - 1);
            InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strXdata);

            //给定值
            strYdata = strYdata.Substring(0, strYdata.Length - 1);
            InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strYdata);

            //添加标签
            ChDataLabels dls = InsertChart.SeriesCollection[0].DataLabelsCollection.Add();
            if (ChartType.ToString().IndexOf("ChartTypePie") != -1)
            {
                dls.Position = ChartDataLabelPositionEnum.chLabelPositionCenter;
                dls.HasPercentage = false;
                //dls.HasValue = false;
                dls.HasCategoryName = false;
                //指定图表是否需要图例标注
                InsertChart.HasLegend = true;
                InsertChart.Legend.Position = ChartLegendPositionEnum.chLegendPositionBottom;
            }

            //输出文件.
            int iImageLength = 0;
            int iImageWidth = 0;

            //从Config文件取得设置
            //iImageLength = int.Parse(WebConfigurationManager.AppSettings["ShowImageLength"]);
            //iImageWidth = int.Parse(WebConfigurationManager.AppSettings["ShowImageWidth"]);
            iImageLength = 450;
            iImageWidth = 300;

            string strImageName = ChartType.ToString() + "_" + Guid.NewGuid().ToString("N") + ".png";
            laySpace.ExportPicture(strAbsolutePath + strImageName, "PNG", 450, 300);

            //把图片添加到placeholder中,并在页面上显示
            string strImageTag = "<IMG WIDTH=‘450‘ SRC=‘" + strRelativePath + strImageName + "‘/>";

            this.PlaceHolder1.Controls.Add(new LiteralControl(strImageTag));
           // return strImageTag;
        }
时间: 2024-10-20 13:39:28

使用C#画图(饼图折线图)的相关文章

利用python进行折线图,直方图和饼图的绘制

我用10个国家某年的GDP来绘图,数据如下: labels   = ['USA', 'China', 'India', 'Japan', 'Germany', 'Russia', 'Brazil', 'UK', 'France', 'Italy'] quants   = [15094025.0, 11299967.0, 4457784.0, 4440376.0, 3099080.0, 2383402.0, 2293954.0, 2260803.0, 2217900.0, 1846950.0] 首

数据可视化分析(柱状图、饼图、折线图、雷达图)

分析文件’课程成绩.xlsx’,至少要完成内容: 1)每年不同班级平均成绩情况 2)不同年份总体平均成绩情况 3)不同性别学生成绩情况,并分别用合适的图表展示出三个内容的分析结果. 导入相应的库 from functools import reduce import xlrd from flask import Flask, jsonify, render_template, request, url_for from pyecharts import Line,Bar,Pie,Radar py

安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图

折线图: [java] view plaincopy package org.achartengine.chartdemo.demo.chart; import java.util.ArrayList; import java.util.List; import org.achartengine.ChartFactory; import org.achartengine.chart.PointStyle; import org.achartengine.renderer.XYMultipleSe

java实现各种数据统计图(柱形图,饼图,折线图)

近期在做数据挖掘的课程设计,须要将数据分析的结果非常直观的展现给用户,这就要用到数据统计图,要实现这个功能就须要几个第三方包了: 1.       jfreechart-1.0.13.jar 2.       jcommon-1.0.16.jar 3.       gnujaxp.jar 先来看一下,终于效果图: 主要是jfreechart-1.0.13.jar,但这三个包要齐全,我已经将全部与jfreechart有关的jar包与本文实例的project(代码)一同压缩上传了,有兴趣的同学能够下

VS2010 使用TeeChart画图控件 - 之二 - 绘制图形(折线图,柱状图)

1.前期准备 详细可见VS2010 使用TeeChart画图控件 - 之中的一个 控件和类的导入 1. 1 加入TeeChart控件,给控件加入变量m_TeeChart 加入TeeChart控件,右击控件,选择加入变量,vs会自己主动给我们引入CTchart1这个类,可是仅仅有这个类,我们是远远不够的,须要加入teechart其它相关的类,加入方法在之前已经讲过,不再反复. 1.2. 引入必要的头文件 事实上之前的方法比較麻烦,更简单就是通过类向导,导入类型库的类 如图进入类向导,选择加入类bu

Android画折线图、柱状图、饼图(使用achartengine.jar)

自从用了画折线的jar包之后,就不想再用canvas画布去画了,编程就是要站在巨人的肩膀上. 所需要的jar包achartenginejar 折线代码布局文件就不上传了很简单 另一种线的渲染器 扇形图代码 柱状图代码 属性总结部分代码 新测试代码下载地址 所需要的jar包:achartengine.jar 下载地址:http://download.csdn.net/detail/zhengyikuangge/9460642 折线代码(布局文件就不上传了,很简单): package com.exa

百度推出的echarts,制表折线图柱状图饼图等的超级工具

一.简介: 1.绘制数据图表,有了它,想要网页上绘制个折线图.柱状图,从此easy. 2.使用这个百度的echarts.js插件,是通过把图片绘制在canvas上在显示在页面上. 官网对echarts的简介: ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRen

highCharts折线图、饼图、柱图

原文:highCharts折线图.饼图.柱图 源代码下载地址:http://www.zuidaima.com/share/1550463665392640.htm highCharts折线图.饼图.柱图 每种类型的图有5种不同风格的样式 折线图 饼图 柱图 竖柱图

JS 画饼图,折线图

网址: http://www.hcharts.cn/demo/index.php 效果图: 它的网址里面都很全的.简单实用扣代码即可 使用时注意数据格式即可 1 //获取mood_evalue的百分比 2 $total_mood_evalue = 0; 3 //初始化key的数组,统计key的百分比 4 $mood_key_arr = array(); 5 6 //1-5分别对应值1-5: 7 $mood_evalue_1 = $mood_evalue_2 = $mood_evalue_3 =