问题如下:使用MSCHART控件做出类似下面这个图形的图来。
经过一些摸索给出如下答案:
Private Sub Command1_Click()
Dim MyData(0 To 4, 0 To 15) As String
Dim iRow As Integer
'损失时间H---第1行
'次品数PCS---第2行
'调机/转型号 H---第3行
'报废 KG---第4行
MyData(1, 0) = "损失时间"
MyData(2, 0) = "次品数"
MyData(3, 0) = "调机/转型号"
MyData(4, 0) = "报废"
For i = 1 To 15
MyData(0, i) = i & Space(1) '注意一定要后面的space(1),这样做的目的是为了自动显示成标签(字符串类型)
Next
'第1行数据初始化(注意,为0的数据不要赋值)
iRow = 1
MyData(iRow, 1) = 189: MyData(iRow, 2) = 280: MyData(iRow, 3) = 233
MyData(iRow, 6) = 338: MyData(iRow, 7) = 356
'第2行数据初始化
iRow = 2
MyData(iRow, 1) = 227: MyData(iRow, 2) = 190: MyData(iRow, 3) = 172
MyData(iRow, 6) = 189: MyData(iRow, 7) = 232
'第3行数据初始化
iRow = 3
MyData(iRow, 1) = 72: MyData(iRow, 2) = 145: MyData(iRow, 3) = 120
MyData(iRow, 6) = 140: MyData(iRow, 7) = 205
'第4行数据初始化
iRow = 4
MyData(iRow, 1) = 36.01: MyData(iRow, 2) = 37.05: MyData(iRow, 3) = 39.31
MyData(iRow, 6) = 32.99: MyData(iRow, 7) = 37.98
With MSChart1
'------------------图线标记外观设置开始----------------------------------------------------------------
For iRow = 1 To 4 '本循环设置4条线标记的大小,线的粗细
.Plot.SeriesCollection(iRow).SeriesMarker.Auto = False
With MSChart1.Plot.SeriesCollection(iRow).DataPoints.Item(-1).Marker
.Visible = True: .Pen.Width = 10: .Size = 150
End With
Next
'下面的语句单独设置每条线标记的图案类型
'第一行标记
iRow = 1
.Plot.SeriesCollection(iRow).DataPoints.Item(-1).Marker.Style = VtMarkerStyleFilledCircle '圆形
'第二行标记
iRow = 2
.Plot.SeriesCollection(iRow).DataPoints.Item(-1).Marker.Style = VtMarkerStyleFilledSquare '方形
'第三行标记
iRow = 3
.Plot.SeriesCollection(iRow).DataPoints.Item(-1).Marker.Style = VtMarkerStyleFilledUpTriangle '三角形
'第四行标记
iRow = 4
.Plot.SeriesCollection(iRow).DataPoints.Item(-1).Marker.Style = VtMarkerStyleStar '*形
'------------------图线标记外观设置结束----------------------------------------------------------------
'------------------图线外观设置开始----------------------------------------------------------------
For iRow = 1 To 4 '本循环设置4条线的粗细及数据值的显示位置
.Plot.SeriesCollection(iRow).Pen.Width = 10
.Plot.SeriesCollection(iRow).DataPoints(-1).DataPointLabel.LocationType = VtChLabelLocationTypeRight
.Plot.SeriesCollection(iRow).DataPoints(-1).DataPointLabel.VtFont.Size = 8
'原图中不显示第一条数据线的数值
If iRow = 1 Then .Plot.SeriesCollection(iRow).DataPoints(-1).DataPointLabel.LocationType = VtChLabelLocationTypeNone
Next
'------------------图线外观设置结束----------------------------------------------------------------
'------------------坐标轴外观设置开始----------------------------------------------------------------
'设置X轴外观
.Plot.Axis(VtChAxisIdX).ValueScale.Auto = False
.Plot.Axis(VtChAxisIdX).AxisGrid.MinorPen.Style = VtPenStyleNull
.Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleNull
'设置第一Y轴外观
.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False
.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 380
.Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 19
.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0
.Plot.Axis(VtChAxisIdY).AxisGrid.MinorPen.Style = VtPenStyleNull
.Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleNull
'设置第二Y轴外观
.Plot.Axis(VtChAxisIdY2).AxisScale.Hide = True
.Plot.Axis(VtChAxisIdY2).ValueScale.Auto = False
.Plot.Axis(VtChAxisIdY2).AxisGrid.MinorPen.Style = VtPenStyleNull
.Plot.Axis(VtChAxisIdY2).AxisGrid.MajorPen.Style = VtPenStyleNull
'------------------坐标轴外观设置结束----------------------------------------------------------------
'------------------图例外观设置开始----------------------------------------------------------------
.ShowLegend = True
.Legend.Backdrop.Frame.Style = VtFrameStyleSingleLine
.Legend.Backdrop.Frame.Width = 10
.Legend.Location.LocationType = VtChLocationTypeTopRight
'------------------图例外观设置结束----------------------------------------------------------------
'------------------图形区设置开始----------------------------------------------------------------
.Plot.AutoLayout = False
.Plot.LocationRect.Min.Set 0, 0
.Plot.LocationRect.Max.Set .Width, .Height - 850 '减去图例的高度
'------------------图形区设置结束----------------------------------------------------------------
.Plot.DataSeriesInRow = True '设置图形按行读取数据
.chartType = VtChChartType2dLine '设置图表类型
.ChartData = MyData
End With
End Sub
程序运行后效果如下图
由于时间关系,还不是和原图完全一致,还存在一些小的问题没有解决。等有时间了再来完善,权且当作一个例子供大家参考。
分享到:
相关推荐
在本文中,我们将深入探讨如何使用VB中的MSChart控件来绘制直方图和曲线图。 首先,让我们了解直方图和曲线图的基本概念。直方图是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。在一般的...
在VB中使用MSChart控件,首先需要在项目中引用`System.Windows.Forms.DataVisualization`命名空间。通过这个命名空间,开发者可以访问到MSChart的所有功能,包括但不限于线图、柱状图、饼图、散点图等多种图表类型,...
### 使用VB中的MSChart控件绘制曲线图 在Visual Basic(简称VB)开发环境中,MSChart控件是一种非常实用的工具,它可以帮助开发者快速地在应用程序中实现图表绘制功能。本文将详细介绍如何利用MSChart控件结合...
总结来说,VB中的MSChart控件提供了一种直观且灵活的方式来呈现数据。通过设置系列类型和分配数据,开发者可以创建出包括直方图和曲线图在内的多种图表,以帮助分析和解释数据。这个简单的示例为我们展示了一个基本...
【VB6.0绘制MsChart和MSFlexGrid】是关于使用Visual Basic 6.0(VB6.0)开发应用程序时集成数据可视化和表格控件的主题。MsChart和MSFlexGrid是VB6中两个非常重要的组件,它们允许开发者创建动态、交互式的图表和...
VB使用MSChart控件生成圆形图表,也就是圆饼状的显示百分比的图表功能,一个VB使用MSChart控件显示图表数据的例子,以图表来显示统计数据,显示专业风范,而且MSChart控件是Windows平台编程的共享组件,用好了,功能...
通过提取VB中的mschart控件,开发者可以在VC项目中利用它的功能。 【描述】提到的"vc中免费的曲线控件"是指在VC开发环境中可以使用的、无需额外付费的图形绘制组件。通常,这样的控件可以帮助程序员快速构建具有...
《VB6.0中通过MSChart控件调用数据库》不仅是一篇关于如何在VB6.0环境中实现图表展示与数据库操作的技术文章,更是一个综合了事件驱动编程、数据库连接、数据绑定等多方面知识的实践案例。对于初学者而言,深入理解...
在VB中,连接数据库是通过使用ActiveX Data Objects(ADO)对象来实现的。ADO是一个COM组件,提供了访问各种数据库管理系统的接口。在上面的代码中,使用了ADODB.Connection对象来连接数据库。连接字符串中指定了...
在VB6中集成MSChart,首先需要安装相关的控件,通常作为Visual Basic 6的扩展或通过Microsoft Chart Components获得。安装完成后,可以在工具箱中看到MSChart控件,可以将其拖放到表单上,并进行各种定制以满足特定...
在VB(Visual Basic)编程环境中,MSChart控件是一个强大的工具,用于创建各种图表和图形,使得数据可视化变得更加直观和高效。"mschart控件例程"是一个示例项目,旨在帮助开发者了解如何在VB应用中有效地利用这个...
在本示例中,我们将重点讨论如何在VB中使用MSChart控件来绘制动态的、随数据实时变化的两条折线图。以下是一个详细的知识点讲解: 1. **MSChart控件介绍**: MSChart是.NET Framework的一部分,主要在System....
MsChart控件是微软在Visual Studio 2008中引入的一个强大图表组件,它为开发者提供了丰富的数据可视化功能,可以方便地创建各种类型的图表,包括柱状图、折线图、饼图、散点图等。这个"MsChart控件的所有补丁"集合...
在VB6中,MSChart控件提供了这些功能,可以轻松地实现动态数据可视化。 首先,我们需要在VB6的工具箱中添加MSChart控件。这可以通过“组件”对话框完成,选择“Microsoft Chart Control”并将其添加到工具箱中。...
mschart.ocx 是一款与图形报表有关的控件,很多人特别是初接触VB的朋友,都曾询问过这个控件的使用方法,的确,学会以了mschart确实对提升编程效率起了很大作用的,因为mschart.ocx功能确实强大,本压缩包内的实例...
在VS2017(Visual Studio 2017)中设置MSChart控件,特别是针对win10操作系统,可能会遇到一些兼容性问题,但通过以下步骤,可以确保成功设置。 首先,确保你的开发环境是最新版的win10系统,同时安装的是Visual ...
4. **查询Access数据**: 在VB中,可以使用ADO.NET(ActiveX Data Objects .NET)库连接和查询Access数据库。ADO.NET提供了DataSet、DataTable、DataAdapter等对象,用于在代码中操作数据库。 - **Connection对象**...
VBMSchart图表控件的类型和示例