chart控件(wpf有没有好用的chart控件)
你是否想了解更多关于chart控件和wpf有没有好用的chart控件的知识?在本文中,小编将为您详细介绍这两个话题,帮助您更好地理解。
wpf有没有好用的chart控件
这个功能将能够使得我们在一个3D图表上添加或控制第三个轴。个人觉得最新的这个SurfaceXYZ图表最炫的功能就是创使用来自不同城市的数据建地理位置上精确的表面。这个功能可以用于很多的地方,比如说图表绘制、每个城市会甚至是一个国家的总销售收入等。在本次的示例中,我们假设需要显示整个佛罗里达超过800家店的客户满意度,我们将按照城市的字母顺序,然而定位指定商店的分数是非常容易的,但是难的是了解国家哪些区域的商店比其他的地方做的更好,并将其绘制在表面上。在另一方面,将会打组所有接近的商店,这样就会很好的找到最好和最差的区域时哪里,这种情况特别适合于一个国家的地图,最终的效果将会如下所示:选择一张地图,我选择了Mercator墨卡托投影的地图,也许你还没注意到,我们已将这个所选的地图放在了表面。这样做是因为用于表面的三角测量法将会插入所有的数据到我们的表面上,从墨西哥湾商店的数据收集来造成一种假象。值得注意的是,我们将这张图盖住了城市是透明的区域,这样的话,非透明的海洋将会覆盖插入的数据就会显得没有意义。下面是我们没有表面的地图的样子。现在已经选择了地图,来看看数据资料:我们有着商店的经度和纬度,这将会值得通过GPS找到这个位置非常的容易。接下来,我们要将它转化成在我们随所挑选的地图上的像素值,由于这是一个墨卡托投影,使用下面的公式来进行转换(φ表示的是经度,λ表示的是纬度)。一旦将我们的数据格式化之后,就可以将数据传递到图表,看看会得到什么样的结果: SurfaceXYZ surfaceXYZ= new SurfaceXYZ(); surfaceXYZ.ShowPointsGridlines= false; surfaceXYZ.ShowSeriesGridlines= false; surfaceXYZ.ShowContourLines= true; chart1.ItemsSource= chartData; SeriesAttributes series0= new SeriesAttributes(); SeriesAttributes series1= new SeriesAttributes(); series0.GalleryAttributes= surfaceXYZ; series1.GalleryAttributes= surfaceXYZ; series0.BindingPath="Score"; series0.BindingPathX="X"; series1.BindingPath="Y"; chart1.Series.Add(series0); chart1.Series.Add(series1);值得注意的是,我们在这里需要两个系列的XYZ图表,第二个图表将会被绑定到Z数据,但是由于我们希望在上面的表面是以一种二维的方式,我们将它称为“Y”(在地图上或是在纬度上)。Y轴表示着我们正在传递的值,如果这不是二维的图表,它将会代表着深度或高度。在表面多余的代码,依然会有用,如果在图表上做一些变动使它变成轮廓。 ChartFX.WPF.View3D view3D= chart1.View3D; view3D.IsEnabled= true; view3D.AngleX=-90; view3D.AngleY= 0; view3D.Projection= Projection.Orthographic; view3D.BackWallVisibility= Visibility.Collapsed; chart1.AxisX.Line.Visibility= Visibility.Hidden; chart1.AxisX.Grids.Major.Visibility= Visibility.Hidden; view3D.Lights.Clear(); System.Windows.Media.Media3D.AmbientLight ambLight= new System.Windows.Media.Media3D.AmbientLight(Color.FromRgb(0xD0, 0xD0, 0xD0)); view3D.Lights.Add(ambLight);如果你仔细看会发现,这个“Florida shape”看起来有一点扭曲,这个主要是因为我们的轮廓是放置在一个平面上的,而不是我们选择的地图的比例设置。此外,在X轴和Z轴上的最大值并不是在我们地图上使用的值。
asp.net的图标控件chart
前段时间项目中开发用到柱状图饼图由于vs上没有这边好的控件在网上搜索咯下发现chart控件的评价还是相当高的先说下安装步骤首先得安装 net framework sp对应vs安装MSChart_VisualStudioAddOn exe vs则安装MSChart exe安装好后打开vs软件在数据类控件库里面就能看到chart控件了拖过来就能用主要收下一些属性的意思免得不会的又去学习一遍浪费时间前台<asp:Chart ID= chrCount runat= server BackColor= LightSteelBlue BackGradientStyle= TopBottom BackSecondaryColor= White EnableTheming= False EnableViewState= True Height= px Width= px ImageStorageMode= UseImageLocation><Legends><asp:Legend Alignment= Center Docking= Left Name= Legend Title=图例></asp:Legend></Legends><Titles><asp:Title Font=微软雅黑 pt Name= Title Text=个贷中心信息录入岗完成笔数统计表></asp:Title></Titles><Series></Series><ChartAreas><asp:ChartArea Name= ChartArea><AxisX><MajorGrid Enabled= false/></AxisX><AxisY><MajorGrid Enabled= false/></AxisY></asp:ChartArea></ChartAreas></asp:Chart> ImageStorageMode这个属性是否要将生产的图片保存到服务器后台 DataSet dt= CStatsReportV CommitCountyByStaffid(dtDKFFRQ nType actid gdzxdept ref objDB) chrCount DataSource=dt; ArrayList arrdc_staff= CStatsReportV F_OstaffnameListByActid(dtDKFFRQ actid nType gdzxdept ref objDB)//绑定数据源 chrCount Series Clear()将柱状图实例情况 if(arrdc_staff!= null)//根据人员动态添加柱状图图例{ foreach(Cdc_staff objstaff in arrdc_staff){ chrCount Series Add(objstaff m_nStaffid ToString()) chrCount Series[objstaff m_nStaffid ToString()] Legend= Legend; chrCount Series[objstaff m_nStaffid ToString()] LegendText= objstaff m_szStaffname; chrCount Series[objstaff m_nStaffid ToString()] XValueMember= strDate;//X轴为日期 chrCount Series[objstaff m_nStaffid ToString()] YValueMembers= objstaff m_szStaffname;//Y轴为用户//if(arrdc_staff Count<=) chrCount Series[objstaff m_nStaffid ToString()] IsValueShownAsLabel= true;//是否显示柱状图没列值}} chrCount ChartAreas[ ChartArea ] AxisY Title=笔数(单位笔);//Y轴单位 chrCount ChartAreas[ ChartArea ] AxisY TitleAlignment= StringAlignment Far;//设置Y轴标题的名称所在位置位远 chrCount ChartAreas[ ChartArea ] AxisX Interval=;//txtDateEnd Text= chrCount Series LongCount() ToString()//string file= Server MapPath(@~/TmpFiles/ jpeg)//chrCount SaveImage(file ChartImageFormat Jpeg)//chrCount ChartAreas[ ChartArea ] AxisX MajorGrid Enabled= false;//是否显示柱状图后面的方块//chrCount ChartAreas[ ChartArea ] AxisY MajorGrid Enabled= false; lishixinzhi/Article/program/net/201311/12179
Chart控件获得鼠标当前图表坐标值问题!
PublicClassForm1
PrivateSubChart1_MouseMove(senderAsObject,eAsMouseEventArgs)HandlesChart1.MouseMove
DimmousePointAsNewPoint(e.X,e.Y)
Chart1.ChartAreas(0).CursorX.SetCursorPixelPosition(mousePoint,True)
Chart1.ChartAreas(0).CursorY.SetCursorPixelPosition(mousePoint,True)
Chart1.ChartAreas(0).CursorX.LineColor=Color.Orange
Chart1.ChartAreas(0).CursorY.LineColor=Color.DarkOrange
Chart1.ChartAreas(0).CursorX.LineWidth=2
Chart1.ChartAreas(0).CursorY.LineWidth=2
Chart1.ChartAreas(0).CursorX.AutoScroll=True
'================================================
Chart1.ChartAreas(1).CursorX.SetCursorPixelPosition(mousePoint,True)
Chart1.ChartAreas(1).CursorY.SetCursorPixelPosition(mousePoint,True)
Chart1.ChartAreas(1).CursorX.LineColor=Color.Orange
Chart1.ChartAreas(1).CursorY.LineColor=Color.DarkOrange
Chart1.ChartAreas(1).CursorX.LineWidth=2
Chart1.ChartAreas(1).CursorY.LineWidth=2
Chart1.ChartAreas(1).CursorX.AutoScroll=True
EndSub
PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.Load
DimdtAsNewDataTable
'表增加¨月份、参数1¨参数2三列
dt.Columns.Add("月份")
dt.Columns.Add("参数1")
dt.Columns.Add("参数2")
DimdrAsDataRow
ForiAsInteger=1To100
'新增行
dr=dt.NewRow()
'月份1-12月
dr.Item(0)=i&"月"
Randomize()
'参数1¨
dr.Item(1)=Int(50*Rnd(8))
Randomize()
'参数2
dr.Item(2)=600+Int(2000*Rnd(7))
dt.Rows.Add(dr)
Next
dr=Nothing
WithMe.Chart1
.DataSource=dt'dt作为achart1的数据源
.Series.Clear()
.Legends.Clear()
.ChartAreas.Clear()
.ChartAreas.Add("参数1")
.ChartAreas.Add("参数2")
.Legends.Add("参数1")
.Legends.Add("参数2")
.Series.Add("参数1")
.Series.Add("参数2")
.Series("参数2").ChartArea="参数2"'指定Series所属ChartArea
.Series("参数2").Legend="参数2"'指定Legend所属Series
.Series("参数2").LegendToolTip="参数1图例"
.Series("参数1").LegendToolTip="参数1图例"
.Series("参数1").IsValueShownAsLabel=False'标签显示数据值
.Series("参数2").IsValueShownAsLabel=False'标签显示数据值
.Legends("参数2").DockedToChartArea="参数1"'指定Legend所属ChartArea
.Legends("参数2").DockedToChartArea="参数2"
'.ChartAreas("参数2").Area3DStyle.Enable3D=True'启用3D样式
EndWith
Chart1.Series.Add(1)
With(Chart1.Series(0))
'指定x/y轴数y据Y列
.YValueMembers="参数1"
.XValueMember="月份"
'图表类型
.ChartType=DataVisualization.Charting.SeriesChartType.Line'曲¨2线?类¤¨¤型¨a
EndWith
Me.Chart1.DataBind()'绑?¨?定?§数oy据Y源??
WithMe.Chart1.Series("参数1")
Dims1AsInteger
ForiAsInteger=0To.Points.Count-1
s1=s1+Val(.Points(i).GetValueByName("y"))
.Points(i).ToolTip=.Points(i).AxisLabel&.Points(i).GetValueByName("y")
Next
'图a?例¤y显?示o?总á¨1收o?入¨?
'Me.Chart1.Legends("参数1").Title="总á¨1收o?入¨?"
'.LegendText=s1.ToString
EndWith
WithChart1.Series(1)
.YValueMembers="参数2"
.XValueMember="月份"
.ChartType=DataVisualization.Charting.SeriesChartType.Line
EndWith
WithMe.Chart1.Series("参数1")
.IsValueShownAsLabel=True
ForiAsInteger=0To.Points.Count-1
.Points(i).ToolTip=.Points(i).AxisLabel&.Points(i).GetValueByName("y")
.Points(i).LegendText=.Points(i).AxisLabel
.Points(i).Label="#PERCENT"
.SmartLabelStyle.AllowOutsidePlotArea=True
Next
EndWith
Me.Chart1.AlignDataPointsByAxisLabel("参数2")
WithMe.Chart1.Legends("参数2")
.LegendStyle=DataVisualization.Charting.LegendStyle.Column
.Title="参数2"
EndWith
EndSub
EndClass
OK,本文到此结束,希望对大家有所帮助。