共 1 篇文章

标签:C#中有没有box chart?或者实现box chart功能的chart (c chart控件 数据库)

C#中有没有box chart?或者实现box chart功能的chart (c chart控件 数据库)

代码中的Chart控件的命名是chartData,数据源是dt,由于chart属性太多,不好一一解释,所以请仔细看截图,尤其重视本例用到的属性 一、数据源: 数据返回方式是DataSet.Tables,即DataTable,也是最基本的数据源方式。这里只介绍DataTable绑定数据源,很简单: chartData.DataSource = dt; chartData.DataBind(); 二、Series: Series是画在ChartArea上的线、点、柱形、条形、饼图,简单点儿说就是画在上面的数据,直接说属性, 1. “标记”:就是数据点,某个数据值的点。如下图所示: MarkerBorderColor 数据点边框的颜色 MarkerBorderWidth 数据点边框的宽度 MarkColor数据点的颜色 MakerSize数据点的大小,默认值为0数据点不存在,建议代码控制 MarkerStep数据点显示的频率 MarkerStyle数据点的样式,可以是方块、圆圈、三角、叉子…. 2. “标签”:就是现在是在数据点旁边数据值 IsValueShownAsLabel 数据值是否显示,建议代码控制 SmartLabelStyle数据值样式 SmartLabelStyle.Enabled 直接控制可用不可用,建议不可用 SmartLabelStyle.AllowOutsidePloArea 数据值显示是否允许在外面 其他属性自己试吧 注意:如果要使用SmartLabelStyle的话,所有的数据点的值都会自动找位置显示出来,如果某一个区域数据点较多,就会直线指示;如果不用的话,数据点的值会在数据点旁边显示,不会有直线。如下图所示也可以看到AllowOutsidePlotArea的区别: 3. “Font”:数据标签上的字体和样式 Font标签字体设置 Font.Unit 个人设置此值为Document,自己体会 LabelAngle 标签角度,斜多少度,建议就正着 LabelBackColor标签背景颜色 LabelBorderColor标签边框颜色 LabelBorderDahStyle标签边框样式 LabelBorderWidth标签边框宽度 LabelForeColor标签字体颜色 其他属性自己试 真好看数据多的时候本来显示就乱拉,这样更是画蛇添足,建议透明,正常点的颜色就好 3. 空白点:就是连续的数据,譬如X轴对应Y轴没数据,或Y轴对应X轴没数据,这样的数据点可以对其设置相应的属性,属性大多都是上面说过的,自己试一下即可 4. 数据:其实就是就是serie的名字和值类型 Name 就是唯一的名字 XvalueTypeX轴值类型 YValuesPerPoint数据点的Y值数目 YValueTypeY轴值类型 其他属性自己试 默认不用设置就好,主要是X轴和Y轴值类型设置的是Auto,也就是根据X轴上的值和Y轴上的值的类型自动匹配,当然手动设置的话不设错就行了。 5. 数据源:注意这里是Series的数据源 注意: 之一,这两个属性对应的是DataTable的两个列,也就是一般的X轴对应时间,Y轴对应数据值,但是也要注意对DataTable的每个数据单元的值做判断,尤其是DBNull或空。我这里的数据库的NewDateTime列数据类型是DateTime类型,NewFyj是Double类型。 第二,Series的数据源和Chart控件的数据源有区别,只有DataTable先绑定了Chart,Series才对应到列,否则无法对应。 第三,假如用户需要先查看所有数据,然后取消某几条进行数据对比,但是不需要重新查询数据,推荐赋值string.Empty实现,如下图: 6. 图表:也就是Serie画在哪个ChartArea上,ChartType是Serie的图表类型,也就是画何种图,曲线图、直线图、点、柱状图、饼图等… 7. 图例:也就是每个Serie的名字和样式,只要创建Serie就会自动产生加载在Legend里,里面的属性可以试一下,如果想调整Legend的位置,可以去Legend里设置,比较简单,这里不多说 8. 图表 9. 映射区:鼠标放在数据点上出现的小提示,建议用代码控制 10. 杂项 EmptyPointValue空数据点的值做平均还是做零处理 LabelStyle 对标签硬性的规定显示在数据点旁的哪个位置 11. 轴:也就是X轴和Y轴,X轴有主轴和副轴,Y轴也有主轴和副轴,主轴为Primary,副轴为Secondary。X主轴在下方,Y主轴在右方,X副轴在上方,Y副轴在右方。 三、ChartAreas: Chart控件里最重要的,每个Serie都画在ChartArea上,Chart控件可以有多个ChartArea叠加在一起显示。比如之一个ChartArea绘制的是曲线,第二个画的柱状图或者是什么什么,这也是上面说过的Serie的ChartType,我们也可以把多个Serie画在一个ChartArea上,但是如果有一个列数据单位范围在500~10000之间的数据浮动更大,有一列数据单位范围在0.1~2.0之间,有一列数据单位范围在50~100之间,那画在同一个ChartArea上显示的话,0.1到2.0的数据会变成一条直线。当只有1、2条这样的数据时,可以在Serie中设置主轴和副轴,但当出现多条数据,多种类型的显示,就需要多个ChartArea来解决了。由于属性太多了,捡重点属性介绍,其他的属性自己试一下 1. 对齐:ChartArea对齐方式 AlignmentOrientation水平对齐、垂直对齐、全部对齐 AlignmentStyle 根据哪种方式对齐 AlignmentWithChartArea和哪个对齐 老实说,没啥用,可以设置Position,一会儿在外观里会说到 2. 三维:自己试试,效果很沉重,不是很好 3. 外观:可以对ChartArea颜色、边框、位置的设置 BackColorChartArea的背景颜色 BackGradientStyle 背景颜色的渐变方式 BackHatchStyle 背景阴影 BackImage背景图片 BackImageAlignment图片显示位置 BackImageTransparentColor绘制图像时显示的颜色 BackImageWrapMode 包装模式 BackSecondaryColorChartArea的第二背景颜色,搭配渐变用的 BorderColor 边框颜色 BorderDashStyle 边框线的样式 BorderWidth 边框宽度 ShadowColor 整个图标的背影颜色 ShadowOffset 背影偏移量 注意: 之一,InnerPlotPosition和Position一个是大的,一个是内部绘制的,试一下就明白了,这里最重要的是多个ChartArea重叠在一起的时候,两个Position一定要设置相同,否则就重叠不上了。 第二,多个ChartArea重叠在一起的时候,颜色或图片只能在叠在更底下的ChartArea来设置,上面的ChartArea都设置为透明即可,更底下的ChartArea是ChartAreas,所以不要设置错。 4. 游标:CursorX和CursorY,就是横向和纵向滚动条 CursorX.AutoScroll 滚动条自动滚动 CursorX.AxisType 游标作用在主轴还是副轴 CursorX.Interval...

技术分享