加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C# 2010 Chart的使用

(2012-09-07 15:41:48)
标签:

杂谈

分类: 程序设计语言
关于X轴数据间距过大的问题,可以通过设置scale来解决。在Format Chart页,选中Chart Area->Axes->X-Axis,  设置间隔。
关于点重合的问题,你可以通过改变marker的形状和大小来解决。在Format Chart页,选中Series->Value series,找到marker就可以进行设置了。
X轴和Y轴的最大值设置 也是在Chart Area->Axes->X-Axis的刻度中设置

 

 List<Series> listSer = new List<Series>();
引发动态生成图表的按钮事件完整如下:
 
            string sqlString = "select count(*) from dotrelation where dotdesc like '温度%'";
            num = Mycon.countORL(conn, sqlString);//获得数据库中满足条件的记录数
            //MessageBox.Show("满足条件的数据记录为" + num);
            int heightPer = 100 / num;//计算每个绘图区高度

            for (int i = 0; i < num; i++)
            {
              string serName = "test" + i.ToString();
              listSer.Add(new Series(serName));//对象数组
              fillData(date);//初始化数组此方法自己定义的
              initialSeries((Series)listSer[i], Color.Red, date);
              chart1.ChartAreas.Add("ANOTHER" + i);
//这里是关键!!!!!
                chart1.ChartAreas[i].Position.Width = 100;//绘图区域在控件中的宽度 100是百分比
                chart1.ChartAreas[i].Position.Height = heightPer;
                chart1.ChartAreas[i].Position.X = 5;//绘图区域在控件中的绝对位置 横坐标
                chart1.ChartAreas[i].Position.Y = 3 + heightPer * i;//绘图区域在控件中的绝对位置纵坐标
                chart1.ChartAreas[i].AxisX.LineColor = Color.Blue;
                chart1.ChartAreas[i].AxisY.LineColor = Color.Blue;
                chart1.ChartAreas[i].AxisX.LineWidth = 2;
                chart1.ChartAreas[i].AxisY.LineWidth = 2;
                chart1.ChartAreas[i].AxisY.Title = "监测值";
                //设置网格线   
                chart1.ChartAreas[i].AxisX.MajorGrid.LineColor = Color.Blue;
                chart1.ChartAreas[i].AxisX.MajorGrid.Interval = 2;//网格间隔
                chart1.ChartAreas[i].AxisX.MinorGrid.Interval = 2;
                chart1.ChartAreas[i].AxisY.MajorGrid.LineColor = Color.Blue;
                chart1.ChartAreas[i].AxisY.MajorGrid.Interval = 2;
                chart1.ChartAreas[i].AxisY.MinorGrid.Interval = 2;
               

                chart1.Series[i].IsValueShownAsLabel = false;             //是否显示数据       
                chart1.Series[i].IsVisibleInLegend = false;              //是否显示数据说明   
                chart1.Series[i].MarkerStyle = MarkerStyle.Circle;   //线条上的数据点标志类型   
                chart1.Series[i].MarkerSize = 3;                          //标志大小   
                chart1.Series[i].ChartType = SeriesChartType.Line;      //图表类型为曲线
                string name = "ANOTHER" + i.ToString();
                chart1.Series[i].ChartArea = name;//指定绘图区域
             

                chart1.ChartAreas[i].AxisX.LineColor = Color.Blue;            //X轴颜色   
                chart1.ChartAreas[i].AxisY.LineColor = Color.Blue;            //Y轴颜色   
                chart1.ChartAreas[i].AxisX.LineWidth = 2;                     //X轴宽度   
                chart1.ChartAreas[i].AxisY.LineWidth = 2;                      //Y轴宽度   
                chart1.ChartAreas[i].AxisY.Title = "人数"; //Y轴标题 

            }


            //fillData(date);//初始化数组
            //initialSeries(series1, Color.Red, date);
            initalChart();//图表初始化
        }
Chart
       ChartBorder                       图表区域的边框设置
       ChartFill                         图表区域的背景填充
       Legend                            图表的注释标签显示设置项目,一组数据对应一种颜色的注释
            IsHStack                     当有多个显示项的时候设置Y轴数据是叠加的还是分开的
       Xaxis                             图表区域的X轴相关信息设置
            AxisColor                    坐标轴颜色
            Cross                        坐标的原点,可以设置坐标的偏移程度
            CrossAuto                    原点自动设置:True的话Cross的设置就无效了。
            FontSpec                     X轴标题字体相关信息
                  Angle                  X轴标题字体显示时候的角度,0为水平 90为垂直
                  Fill                   X轴标题字体填充信息
                       ColorOpacity      透明度
                       IsScaled          设置X轴标题字体显示大小是否根据图的比例放大缩小
                       RangeMax          填充时候的最大倾斜度(有过渡色,没试过)
                       RangeMin          填充时候的最小倾斜度(有过渡色,没试过)
                  StringAlignment        X轴标题字体排列(不清楚,没试过)
            IsOmitMag                    是否显示指数幂(10次方,没试过,似乎与IsUseTenPower有关系)
            IsPreventLabelOverlap        坐标值显示是否允许重叠,如果False的话,控件会根据坐标值长度自动消除部分坐标值的显示状态
            IsShowTitle                  X轴标题是否显示
            IsTicsBetweenLabels          两个坐标值之间是否自动显示分隔标志
            IsUseTenPower                是否使用10次幂指数
            IsVisible                    是否显示X轴
            IsZeroLine                   当数据为0时候是否显示(在饼状图显示的时候有用)
            MajorGrid                    大跨度的X轴表格虚线线显示信息
                  DashOff                虚线中孔间距
                  DashOn                 虚线单位长度
            MajorTic                     大跨度的X轴刻度信息
                  IsInside               在Chart内部是否显示
                  IsOutSide              在Chart外部是否显示
                  IsOpposite             在对面的轴上是否显示
            MinorGrid                    小跨度的X轴表格虚线显示信息
            MinorTic                     小跨度的x轴刻度信息
            MinSpace                     刻度和轴之间的距离(没试过)
            Scale                        刻度值的一些设定
                  IsReverse              X轴的刻度值从高到低还是从低到高
                  MajorStep              大刻度步长
                  MajorStepAuto          是否自动设置大刻度步长
                  MajorUnit              大刻度步长单位
                  Max                    刻度最大值
                  MaxAuto                根据输入数据自动设置刻度最大值
                  Min                    刻度最小值
                  MinAuto                根据输入数据自动设置刻度最小值
                  MinGrace               不清楚,没试过
                  MinorStep              小刻度步长
                  MinorStepAuto          是否自动设置小刻度步长
                  MinorUnit              小刻度单位
            Type                         数据显示方式
                                           Liner直接现实(自动)
                                           Date按日期方式显示
                                           Log 按指数幂方式显示
                                           Ordinal顺序显示
       Y2Axis                            第二个Y轴坐标信息显示(具体设置看X轴)
       Yaxis                             第一个Y轴坐标信息显示(具体设置看X轴)
GraphPane
       BarBase                           在生成柱状图的时候设置柱状是基于X轴还是其他轴
       BarType                           柱状的类型叠加或其他。
       IsFontsScaled                     图比例变化时候图表上的文字是否跟着自动缩放
       IsIgnoreInitial                   是否忽略初始值
       IsIgnoreMissing                   是否忽略缺省值
       IsPenWidthScaled                  图比例变化时候图表上的画笔的粗细是否跟着自动缩放
       IsShowTitle                       图表标题是否显示
       PaneFill                          Pane的一些填充信息
MasterPane
       BaseDimension                     缩放比例基数(可以试试效果)
     
数据                                     未测试过。不知道如何和数据库绑定
外观                
       IsImageMap                        不清楚干吗用的
行为
       AxisChaneged                      是否允许自动绘图(没试过,一般都true,动态绘图)
       CacheDuration                     Cache保存时间0
       OutputFormat                      输出格式
       RenderedImagePath                 输出路径
       RenderMode                        输出模式,不太清楚一般都是ImageTag,另一个输出的是乱码不是图片
  
对于图表而言,一般是三种表现形式:柱状图、饼状图和点线图。

ChartBorder
图表区域的边框设置
ChartFill
图表区域的背景填充
Legend
图表的注释标签显示设置项目,一组数据对应一种颜色的注释
IsHStack
当有多个显示项的时候设置  轴数据是叠加的还是分开的
Xaxis
图表区域的  轴相关信息设置
AxisColor
坐标轴颜色
Cross
坐标的原点,可以设置坐标的偏移程度
CrossAuto
原点自动设置:True  的话  Cross  的设置就无效了。
FontSpec
轴标题字体相关信息
Angle
轴标题字体显示时候的角度,0为水平 90为垂直
Fill
轴标题字体填充信息
ColorOpacity
透明度
IsScaled
设置  轴标题字体显示大小是否根据图的比例放大缩小
RangeMax
填充时候的最大倾斜度(有过渡色,没试过)
RangeMin
填充时候的最小倾斜度(有过渡色,没试过)
StringAlignment
轴标题字体排列(不清楚,没试过)
IsOmitMag
是否显示指数幂(10次方,没试过,似乎与  IsUseTenPower  有关系)
IsPreventLabelOverlap
坐标值显示是否允许重叠,如果False的话,控件会根据坐标值长度自动消除部分坐标值的显示状态
IsShowTitle
轴标题是否显示
IsTicsBetweenLabels
两个坐标值之间是否自动显示分隔标志
IsUseTenPower
是否使用10次幂指数
IsZeroLine
当数据为0时候是否显示(在饼状图显示的时候有用)
IsVisible
是否显示 
MajorGrid
大跨度的  轴表格虚线线显示信息
DashOff
虚线中孔间距
DashOn
虚线单位长度
MajorTic
大跨度的  轴刻度信息
IsInside
在  Chart  内部是否显示
IsOutSide
在  Chart  外部是否显示
IsOpposite
在对面的轴上是否显示
MinorGrid
小跨度的  轴表格虚线显示信息
MinorTic
小跨度的  轴刻度信息
MinSpace
刻度和轴之间的距离(没试过)
Scale
刻度值的一些设定
IsReverse
轴的刻度值从高到低还是从低到高
MajorStep
大刻度步长
MajorStepAuto
是否自动设置大刻度步长
MajorUnit
大刻度步长单位
Max
刻度最大值
MaxAuto
根据输入数据自动设置刻度最大值
Min
刻度最小值
MinAuto
根据输入数据自动设置刻度最小值
MinGrace
不清楚,没试过
MinorStep
小刻度步长
MinorStepAuto
是否自动设置小刻度步长
MinorUnit
小刻度单位
Type
数据显示方式
Liner
直接现实(自动)
Date
按日期方式显示
Log
按指数幂方式显示
Ordinal
顺序显示
Y2Axis
第二个  轴坐标信息显示(具体设置看  轴)
Yaxis
第一个  轴坐标信息显示(具体设置看  轴)
BarBase
在生成柱状图的时候设置柱状是基于  轴还是其他轴
BarType
柱状的类型叠加或其他。
IsFontsScaled
图比例变化时候图表上的文字是否跟着自动缩放
IsIgnoreInitial
是否忽略初始值
IsIgnoreMissing
是否忽略缺省值
IsPenWidthScaled
图比例变化时候图表上的画笔的粗细是否跟着自动缩放
IsShowTitle
图表标题是否显示
PaneFill
Pane  的一些填充信息
BaseDimension
缩放比例基数(可以试试效果)
IsImageMap
不清楚干吗用的
AxisChaneged
是否允许自动绘图(没试过,一般都  true,动态绘图)
CacheDuration
Cache  保存时间0
OutputFormat
输出格式
RenderedImagePath
输出路径
RenderMode
输出模式,不太清楚一般都是  ImageTag,另一个输出的是乱码不是图片。对于图表而言,一般是三种表现形式:柱状图、饼状图和点线图。
 
//chart.BackImage = @"C:\Users\Administrator\Desktop\网格背景.jpg";
            chart.BackColor = Color.Transparent;
            chart.Titles.Add(title);
            chart.Titles[0].Text = title;
            chart.Titles[0].ForeColor = Color.White;
            chart.ChartAreas[0].BackColor = Color.Transparent;
            chart.ChartAreas[0].AxisX.LineColor = Color.White;
            chart.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
            chart.ChartAreas[0].AxisX.Title = xTitle;
            chart.ChartAreas[0].AxisX.TitleForeColor = Color.White;
            chart.ChartAreas[0].AxisX.LabelStyle.ForeColor = Color.White;
            chart.ChartAreas[0].AxisX.Interval = 1;
            chart.ChartAreas[0].AxisX.IntervalOffset = 1;
            chart.ChartAreas[0].AxisX.TextOrientation = TextOrientation.Horizontal;
            //chart.ChartAreas[0].AxisX.LabelStyle.IsStaggered = true;
            chart.ChartAreas[0].AxisY.LineColor = Color.White;
            chart.ChartAreas[0].AxisY.MajorGrid.Enabled = false;
            chart.ChartAreas[0].AxisY.Title = yTitle;
            chart.ChartAreas[0].AxisY.TitleForeColor = Color.White;
            chart.ChartAreas[0].AxisY.LabelStyle.ForeColor = Color.White;
            chart.Series[0].Color = Color.Lime;
            chart.Series[0].LegendText = legendText;
            chart.Series[0].IsValueShownAsLabel = true;
            chart.Series[0].LabelForeColor = Color.White;
            chart.Series[0].CustomProperties = "DrawingStyle=Cylinder";
            chart.Legends[0].Position.Auto = true;

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有