Imports System.Windows.Forms.DataVisualization.Charting
...
' Create charts for each data point
CreateChartInSeriesPoints(Chart1, Chart1.Series("Default"), "Pie");
...
'/ <summary>
'/ Creates a mini-chart in the data points of the original Point or Bubble chart.
'/ </summary>
'/ <param name="chart">Chart object.</param>
'/ <param name="series">Original data series.</param>
'/ <param name="chartType">Mini-chart type.</param>
Public Sub CreateChartInSeriesPoints(chart As Chart, series As Series, chartType As String)
'****************************************************
'** Check if series uses X values or they all set
'** to zeros (in this case use point index as X value)
'****************************************************
Dim zeroXValues As Boolean = True
Dim point As DataPoint
For Each point In series.Points
If point.XValue <> 0.0 Then
zeroXValues = False
Exit ForEach
End If
Next point
'****************************************************
'** Calculate bubble scaling variables required to
'** for the bubble size calculations.
'****************************************************
Dim bubbleChart As Boolean = False
' Minimum/Maximum bubble size
Dim maxPossibleBubbleSize As Double = 15F
Dim minPossibleBubbleSize As Double = 3F
Dim maxBubleSize As Single = 0F
Dim minBubleSize As Single = 0F
' Current min/max size of the bubble size
Dim minAll As Double = Double.MaxValue
Dim maxAll As Double = Double.MinValue
' Bubble size difference value
Dim valueDiff As Double = 0
Dim valueScale As Double = 1
' Check for the Bubble chart type
If series.ChartType = SeriesChartType.Bubble Then
bubbleChart = True
' Check if custom attributes are set to specify scale
If series.IsCustomPropertySet("BubbleScaleMin") Then
minAll = Math.Min(minAll, [Double].Parse(series("BubbleScaleMin")))
End If
If series.IsCustomPropertySet("BubbleScaleMax") Then
maxAll = Math.Max(maxAll, [Double].Parse(series("BubbleScaleMax")))
End If
' Calculate bubble scale
Dim minSer As Double = Double.MaxValue
Dim maxSer As Double = Double.MinValue
Dim ser As Series
For Each ser In chart.Series
If ser.ChartType = SeriesChartType.Bubble And ser.ChartArea = series.ChartArea Then
Dim point As DataPoint
For Each point In ser.Points
minSer = Math.Min(minSer, point.YValues(1))
maxSer = Math.Max(maxSer, point.YValues(1))
Next point
End If
Next ser
If minAll = Double.MaxValue Then
minAll = minSer
End If
If maxAll = Double.MinValue Then
maxAll = maxSer
End If
' Calculate maximum bubble size
Dim areaSize As SizeF = chart.ChartAreas(series.ChartArea).Position.GetSize()
' Convert relative coordinates to absolute coordinates
areaSize.Width = areaSize.Width *(chart.Width - 1) / 100F
areaSize.Height = areaSize.Height *(chart.Height - 1) / 100F
maxBubleSize = CSng(Math.Min(areaSize.Width, areaSize.Height) /(100.0 / maxPossibleBubbleSize))
minBubleSize = CSng(Math.Min(areaSize.Width, areaSize.Height) /(100.0 / minPossibleBubbleSize))
' Calculate scaling variables depending on the Min/Max values
If maxAll = minAll Then
valueScale = 1
valueDiff = minAll -(maxBubleSize - minBubleSize) / 2F
Else
valueScale =(maxBubleSize - minBubleSize) /(maxAll - minAll)
valueDiff = minAll
End If
End If
'****************************************************
'** Create chart area for each data point
'****************************************************
Dim pointIndex As Integer = 0
Dim random As New Random()
Dim point As DataPoint
For Each point In series.Points
'****************************************************
'** Create chart area and set visual attributes
'****************************************************
Dim areaPoint As ChartArea = chart.ChartAreas.Add((series.Name + "_" + pointIndex.ToString()))
areaPoint.BackColor = Color.Transparent
areaPoint.BorderWidth = 0
areaPoint.AxisX.LineWidth = 0
areaPoint.AxisY.LineWidth = 0
areaPoint.AxisX.MajorGrid.Enabled = False
areaPoint.AxisX.MajorTickMark.Enabled = False
areaPoint.AxisX.LabelStyle.Enabled = False
areaPoint.AxisY.MajorGrid.Enabled = False
areaPoint.AxisY.MajorTickMark.Enabled = False
areaPoint.AxisY.LabelStyle.Enabled = False
'****************************************************
'** Create data series in the chart area
'****************************************************
Dim seriesPoint As Series = chart.Series.Add((series.Name + "_" + pointIndex.ToString()))
seriesPoint.ChartArea = areaPoint.Name
seriesPoint.ChartType = CType([Enum].Parse(GetType(SeriesChartType), chartType, True), SeriesChartType)
seriesPoint.IsVisibleInLegend = False
seriesPoint.BorderColor = Color.FromArgb(64, 64, 64)
seriesPoint.ShadowOffset = 2
seriesPoint.Palette = ChartColorPalette.Pastel
'****************************************************
'** Populate data series.
'** TODO: For this sample each series is populated
'** with random data. Do your own series population
'** here.
'****************************************************
Dim sliceIndex As Integer
For sliceIndex = 0 To 4
seriesPoint.Points.AddY(random.Next(2, 20))
Next sliceIndex
'****************************************************
'** Set chart area position and inner plot position
'****************************************************
' Set chart area inner plot position
areaPoint.InnerPlotPosition = New ElementPosition(3, 3, 94, 94)
' Position chart area over the data point
Dim position As PointF = PointF.Empty
position.X = CSng(chart.ChartAreas(series.ChartArea).AxisX.GetPosition((If zeroXValues Then pointIndex + 1 Else point.XValue))) 'ToDo: Unsupported feature: conditional (?) operator.
position.Y = CSng(chart.ChartAreas(series.ChartArea).AxisY.GetPosition(point.YValues(0)))
Dim pieSize As Single = (If point.MarkerSize < 15 Then 15 Else point.MarkerSize) 'ToDo: Unsupported feature: conditional (?) operator.
If bubbleChart Then
pieSize = CSng((point.YValues(1) - valueDiff) * valueScale) + minBubleSize
End If
pieSize = pieSize * 100F / CSng(chart.Width - 1)
areaPoint.Position = New ElementPosition(position.X - pieSize / 2F, position.Y - pieSize / 2F, pieSize, pieSize)
' Increase point index
pointIndex += 1
Next point
End Sub 'CreateChartInSeriesPoints
没有合适的资源?快使用搜索试试~ 我知道了~
C# MSCHART的完整实例
共1273个文件
txt:380个
xml:222个
cs:211个
4星 · 超过85%的资源 需积分: 48 697 下载量 35 浏览量
2010-12-13
09:05:09
上传
评论 6
收藏 5.25MB ZIP 举报
温馨提示
C# MSCHART的完整实例,很全很强大哦
资源推荐
资源详情
资源评论
收起资源包目录
C# MSCHART的完整实例 (1273个子文件)
DecisionTree.bmp 1MB
HeaderRight.bmp 290KB
LabelInterval.bmp 171KB
NormalDistribution.bmp 169KB
HeaderLeft.bmp 114KB
CoordinateSystem.bmp 30KB
HeaderMiddle.bmp 2KB
MaxValueMarker.bmp 1KB
doc.bmp 822B
FooterMiddle.bmp 352B
SplitMarker.bmp 270B
DividentMarker.bmp 270B
Face.bmp 230B
face.bmp 230B
SplitLegend.bmp 198B
DividentLegend.bmp 198B
ClassDiagram1.cd 1B
app.config 144B
BandPassFilter.cs 138KB
LegendCells.cs 120KB
MainForm.cs 70KB
LegendInteractive.cs 51KB
SixSigma.cs 48KB
VerticalTabControl.cs 38KB
TTest.cs 36KB
AnnotationStyles.cs 36KB
UsingLabels.cs 35KB
AlignmentTypes.cs 33KB
ChartAreaPosition.cs 32KB
ANOVA.cs 32KB
Appearance.cs 31KB
MovingAverages.cs 31KB
Series Appearance.cs 30KB
ChartAppearance.cs 30KB
MultipleLegends.cs 30KB
GridLinesTicks.cs 30KB
AligningChartingAreas.cs 29KB
Distributions.cs 29KB
VolumeIndicators.cs 28KB
Borders.cs 28KB
SpikeRemoval.cs 28KB
ZOrder.cs 28KB
LabelsTextStyle.cs 28KB
AxisTitle.cs 27KB
FTest.cs 27KB
LegendTitle.cs 27KB
PieCollected.cs 27KB
StripLineTitle.cs 26KB
StripLines.cs 26KB
ActivityLegend.cs 26KB
PaintingDataTable.cs 26KB
UsingMarkers.cs 26KB
BarColumn3D.cs 26KB
EmptyPointAppearance.cs 25KB
AxisVarLabelsInterval.cs 25KB
LegendAppearance.cs 25KB
ChartTitle.cs 25KB
Forecasting.cs 25KB
Cylinder3D.cs 25KB
AnnotationAppearance.cs 25KB
BoxPlotChartType.cs 25KB
TitleCustomPosition.cs 25KB
PointWidthAndDepth.cs 24KB
PyramidChartType.cs 24KB
MultilpleTitles.cs 24KB
FunnelChartType.cs 23KB
AxisAppearance.cs 23KB
Palettes.cs 23KB
ChartInDataPoint.cs 23KB
PieChart3D.cs 23KB
AutoFitAxesLabels.cs 23KB
SmartLabels.cs 23KB
DescriptiveStatistics.cs 23KB
CursorAppearance.cs 23KB
TechnicalPriceIndicators.cs 23KB
RetrievingAssigningDates.cs 23KB
FilterYValuesRange.cs 23KB
FilterWithCustomCriteria.cs 23KB
LegendCustomPosition.cs 23KB
CursorInterval.cs 22KB
FilterTopN.cs 22KB
BubbleChartType.cs 22KB
LegendStylePosition.cs 22KB
RangeBar3D.cs 22KB
AreaChart3D.cs 22KB
FreeDrawAnnotation.cs 22KB
LegendCellColumns.cs 22KB
CursorAxis.cs 21KB
MultilineLabels.cs 21KB
SecondaryAxis.cs 21KB
CustomPrinting.cs 21KB
AntiAliasingSample.cs 21KB
AnnotationPositionChanging.cs 21KB
CursorAutoZoomScroll.cs 21KB
UsingPerspectives.cs 21KB
AxisLabelsInterval.cs 21KB
PrintingSettings.cs 21KB
LegendCellSpan.cs 20KB
FinancialChartType.cs 20KB
PositionChangedEvent.cs 20KB
共 1273 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
qiusijun
- 粉丝: 20
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页