VB mschart控件的使用

2023-11-05

一、先看个小例子

 

Private Sub Form_Load()
Dim MyData(20, 1) As Double
    '-----x轴坐标值-----Y轴坐标值----------
    MyData(0, 0) = 0: MyData(0, 1) = 180 '本句代表了:第一点数据的X轴坐标为0,Y轴坐标为180
    MyData(1, 0) = 6: MyData(1, 1) = 60
    MyData(2, 0) = 8: MyData(2, 1) = 60
    MyData(3, 0) = 11: MyData(3, 1) = 0
    MyData(4, 0) = 16: MyData(4, 1) = 0
    MyData(5, 0) = 19: MyData(5, 1) = 60
    MyData(6, 0) = 25.8: MyData(6, 1) = 60
    MyData(7, 0) = 28.8: MyData(7, 1) = 0
    MyData(8, 0) = 31.8: MyData(8, 1) = 60
    MyData(9, 0) = 40.3: MyData(9, 1) = 60
    MyData(10, 0) = 43.3: MyData(10, 1) = 0
    MyData(11, 0) = 93.3: MyData(11, 1) = 0
    MyData(12, 0) = 96.3: MyData(12, 1) = 60
    MyData(13, 0) = 99.3: MyData(13, 1) = 0
    MyData(14, 0) = 105.3: MyData(14, 1) = 0
    MyData(15, 0) = 135.3: MyData(15, 1) = 0
    MyData(16, 0) = 144.3: MyData(16, 1) = 180
    MyData(17, 0) = 148.8: MyData(17, 1) = 270
    MyData(18, 0) = 405.03: MyData(18, 1) = 270
    MyData(19, 0) = 409.53: MyData(19, 1) = 180
    MyData(20, 0) = 564.17: MyData(20, 1) = 180
'波形图外观设置
With MSChart1
    .TitleText = "速度 m/min"
'    '设置图线的外观
    .Plot.SeriesCollection(1).Pen.Width = 30
    .Plot.SeriesCollection(1).Pen.Style = VtPenStyleSolid
'    '设置XY轴
    .Plot.Axis(VtChAxisIdX).ValueScale.Auto = False
    .Plot.Axis(VtChAxisIdY).ValueScale.Auto = False
    '// 设置最大值
    .Plot.Axis(VtChAxisIdX).ValueScale.Maximum = 600 '设置横轴标注最大值
    .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 300 '设置纵轴标注最大值
    '// 设置最小值
    .Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0
    .Plot.Axis(VtChAxisIdX).ValueScale.Minimum = 0
    '//
    .Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 6 'X轴主要网格数量
    .Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 6 'Y轴主要网格数量
    .Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 0 'X轴次要网格数量
    .Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 'Y轴次要网格数量
    .Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleDotted
    .Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleDotted
    MSChart1.Plot.AutoLayout = False
    MSChart1.Plot.UniformAxis = False
    MSChart1.chartType = VtChChartType2dXY '设置图形为二维散点图
    MSChart1.ChartData = MyData '数据
End With

End Sub

 

 

 

二、mschart控件属性介绍

1.RowCount属性                             设置作图数据的行数。

2.ColumnCount属性                        设置作图数据的列数。

3.TitleText属性                                设置图题。

4.RowLabelCount属性                    设置行标的个数。

5.RowLabel属性                              设置行标。

6.ColumnLabelCount属性               设置列标的个数。

7.ColumnLabel属性                        设置列标。

8.Row属性                                      设置当前行。

9.Column属性                                 设置当前列。

10.AutoIncrement属性               如果数据是连续存放的,将AutoIncrement属性设为True,可以10 .                                              不用随时设置当前行和当前列,向图表控件提供数据时可以连续行。

11.ShowLagend属性                 设置为True时可以显示图例。

图表控件的类型

VtChChartType3dBar 0 3维条形图

VtChChartType2dBar 1 2维条形图

VtChChartType3dLine 2 3维折线图

VtChChartType2dLine 3 2维折线图

VtChChartType3dArea 4 3维域型图

VtChChartType2dArea 5 2维域型图

VtChChartType3dStep 6 3维阶梯图

VtChChartType2dStep 7 2维阶梯图

VtChChartType3dCombination 8 3维联合图

VtChChartType2dCombination 9 2维联合图

VtChChartType2dPie 14 2维饼形图

VtChChartType2dXY 16 2维坐标图

4 图表控件的数据

只有图表控件取得数据才有可能显示数据。图表控件的数据是存放在内置的数据网格内。图表控件数据网格取得数据的方法有:

1.使用Data属性

图表数据可以保存在图表控件的Data属性中。Data属性只能存储数字型的数据,而不能保存文本。在对Data属性赋值前,必须先设置RowCount属性和ColumnCount属性来提供数据的行数和列数,系统根据行数和列数安排Data的大小。

在向Data属性赋值时,还需要指明当前行和当前列。例如,

MSChart1.Column = 5

MSChart1.Data = XYZ

是将XYZ赋予Data的第3行第5列。

如果数据是连续存放的,并将AutoIncrement属性设为True,可以不用随时设置当前行和当前列。例如,

MSChart1.Data = X(1)

MSChart1.Data = X(2)

MSChart1.Data = X(3)

2.使用ChartData属性

ChartData属性既可以存放数字型数据,也可以存放文本型数据。例如,

Dim vntX(1 To 4) As Variant

vntX(1) = “产量”

vntX(2) = 200

vntX(3) = 300

vntX(4) = 400

MSChart1.ChartData = X

“产量”将标示在所绘制图形的X轴上。

3.使用SetData方法

格式是:

MSChart1.DataGrid.SetData 行,列,数值,nullFlag

“数值”为双精度。nullFlag指明数据点是否为空。

本章所开发的绘制图表应用程序使用SetData方法向图表对象添加数据。

4.图题、行标和列标

对图题、行标示和列标示的赋值分两种情况:

(1)使用Data属性和SetData方法

?图题的赋值使用TitleText属性。

?行标示或列标示的赋值先设置当前行或当前列,然后使用RowLabel属性或ColumnLabel属性。例如,

MSChart1.Row = 1

MSChart1.RowLabel = “A”

(2)使用ChartData属性

假定用图表控件表示一个2维数据,作图时使用MSChart1.ChartData = vntX。现在我们看一看vntX是如何形成的。

Dim vntX(1 To 3, 1 To 4) As Variant

vntX(1,1) = “产品质量逐年变化表” 图题放在vnt(1,1)

vntX(1,2) = ”1级” 列标放在第1行

vntX(1,3) = ”2级”

vntX(1,4) = ”3级”

vntX(2,1) = “1999年” 行标放在第1列

vntX(2,2) = 100 1级品数量

vntX(2,3) = 200 2级品数量

vntX(2,4) = 300 3级品数量

vntX(3,1) = “2000年” 行标放在第1列

vntX(3,2) = 300 1级品数量

vntX(3,3) = 200 2级品数量

vntX(3,4) = 100

 

 三、MSChart的元素组成

  

  最常用的属性包括

  ChartAreas:增加多个绘图区域,每个绘图区域包含独立的图表组、数据源,用于多个图表类型在一个绘图区不兼容时。

  AlignmentOrientation:图表区对齐方向,定义两个绘图区域间的对齐方式。

  AlignmentStyle:图表区对齐类型,定义图表间用以对其的元素。

  AlignWithChartArea:参照对齐的绘图区名称。

  InnerPlotPosition:图表在绘图区内的位置属性。

  Auto:是否自动对齐。

  Height:图表在绘图区内的高度(百分比,取值在0-100)

  Width:图表在绘图区内的宽度(百分比,取值在0-100)

  X,Y:图表在绘图区内左上角坐标

  Position:绘图区位置属性,同InnerPlotPosition。

  Name:绘图区名称。

  Axis:坐标轴集合

  Title:坐标轴标题

  TitleAlignment:坐标轴标题对齐方式

  Interval:轴刻度间隔大小

  IntervalOffset:轴刻度偏移量大小

  MinorGrid:次要辅助线

  MinorTickMark:次要刻度线

  MajorGrid:主要辅助线

  MajorTickMark:主要刻度线

  DataSourceID:MSChart的数据源。

  Legends:图例说明。

  Palette:图表外观定义。

  Series:最重要的属性,图表集合,就是最终看到的饼图、柱状图、线图、点图等构成的集合;可以将多种相互兼容的类型放在一个绘图区域内,形成复合图。

  IsValueShownAsLabel:是否显示数据点标签,如果为true,在图表中显示每一个数据值

  Label:数据点标签文本

  LabelFormat:数据点标签文本格式

  LabelAngle:标签字体角度

  Name:图表名称

  Points:数据点集合

  XValueType:横坐标轴类型

  YValueType:纵坐标轴类型

  XValueMember:横坐标绑定的数据源(如果数据源为Table,则填写横坐标要显示的字段名称)

  YValueMembers:纵坐标绑定的数据源(如果数据源为Table,则填写纵坐标要显示的字段名称,纵坐标可以有两个)

  ChartArea:图表所属的绘图区域名称

  ChartType:图表类型(柱形、饼形、线形、点形等)

  Legend:图表使用的图例名称

  Titles:标题集合。

  width:MSChart的宽度。

  height:MSChart的高度。

  常用事件:

  Series1.Points.DataBind()

  绑定数据点集合,如果要在一个MSChart控件的一个绘图区(ChartArea)内添加多个不同数据源的图表,就用这个主动绑定数据集合的方法。可以将表中指定字段的值绑定到指定的坐标轴上。

  MSChart1.DataBind()

 

2010年06月10日 星期二 15:46

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VB mschart控件的使用 的相关文章

  • 矩阵和向量的乘法顺序

    矩阵和向量的乘法顺序 似乎经常有人被这个问题转晕 向量有两种表达形式 行向量和列向量 对应的矩阵也有行矩阵和列矩阵 采用哪种形式和左右手系无关 行矩阵 三个轴向量为前三行 最后一行为位移变换 连乘时从左到右接合 左边的变换先应用 变换向量时
  • 组态王、力控、MCGS、瑞尔、杰控等国内组态软件一点看法

    2005年08月28日 23 26 00 从结构上说 组态王和MCGS一样 前台动画和后台集成在一起 在运行模式下一起运行 而力控 瑞尔却分为后台驱动 实时数据库 前台三部分组成 更为有意思的是 瑞尔的每一个驱动就是一个EXE 其驱动DLL
  • 教你如何用VB做控件*.ocx

    教你如何用VB做控件 ocx 一个控件有很多事件如 Click MouseDown MouseUp MouseMove等 要触发这些事件都需要你加入代码 在控件的声明处加入Public Event Click 就表明该控件有一 Click
  • VB下关闭xp/win7安全模式(即关闭F8)

    亲测方法 1 注册表修改 使用管理员级别帐户登录XP Win7 在 运行 窗口中输入 regedit 打开注册表编辑器 找到HKEY LOCAL MACHINE SYSTEM CurrentControlSet Control SafeBo
  • 如何设计出优秀的LOGO?设计大神告诉你!

    如何设计出优秀的LOGO 设计大神告诉你 精选页面设计图形设计产品设计 自古人类就痴迷于各种几何形状 它们出现于各种古代文明的壁画 文献 启发了文明 催生技术 丰富了文学艺术 圆形的结构 线条的交汇 稳固的三角 无数次地出现在我们的文本 建
  • matlab画对数坐标!

    在很多工程问题中 通过对数据进行对数转换可以更清晰地看出数据的某些特征 在对数坐标系中描绘数据点的曲线 可以直接地表现对数转换 对数转换有双对数坐标转换和单轴对数坐标转换两种 用loglog函数可以实现双对数坐标转换 用semilogx和s
  • 存储过程进行数据合并导入

    CREATE PROCEDURE sp mytest1 mytype int AS declare pro varchar 50 declare pro1 varchar 50 select pro typename from table1
  • VMware安装GHOST版XP教程

    VMware安装GHOST版XP教程 本来我是无法安装GHOST版的XP系统在VMware上 我很苦恼 到处找方法 最后找到了这里 可是每个关于这个问题的帖子里边都说改问题早就被处理 让搜索老帖子 可是我搜索出来的帖子里边的回复都说是改问题
  • 用R建立岭回归和lasso回归

    1 分别使用岭回归和Lasso解决薛毅书第279页例6 10的回归问题 例6 10的问题如下 输入例题中的数据 生成数据集 并做简单线性回归 查看效果 cement lt data frame X1 c 7 1 11 11 7 11 3 1
  • 闭关之 Vulkan 应用开发指南笔记(四):绘制、几何体&片段处理、同步和回读数据

    目录 第8章 绘制 8 1 准备绘制 8 2 顶点数据 8 3 索引绘制 8 3 1 只用索引的绘制 8 3 2 重置索引 8 4 实例化 8 5 间接绘制 第9章 几何体处理 9 1 表面细分 9 1 1 表面细分配置 表面细分模式 控制
  • 什么是CRUD( What is CRUD)?

    在很多技术性的文章 特别是有关数据库类的文章中 经常会看到一个缩写 CRUD 那什么是CRUD呢 CRUD其实是数据库基本操作中的Create 创建 ReadRetrieve 读取 Update 更新 Delete 删除 而这里的Creat
  • LayUI table 刷新页面不重置页码

    layui table 刷新页面时会自动将页码初始化成1 本章内容介绍怎么让layui table刷新页面后留在当前页 要实现此方法主要使用到cookie存储最后一次翻页的页码 主要修改layui lay modules table js文
  • 查询SQL表占用空间(sp_spaceused 表名)

    create table tablespaceinfo 狦 nameinfo varchar 50 rowsinfo int reserved varchar 20 datainfo varchar 20 index size varcha
  • vue_elementui_formatter的使用方法_elementui提取table表格使用formatter方法

    后台管理系统中用到了非常多的表格 一般为了方便都会讲表格进行提取 形成公共组件 提取表格时会遇到返回的json数据中要对单个字段进行处理 如时间戳转换 状态转换等 封装的表格组件代码
  • 深入探索透视投影变换(续)

    潘宏 2009 4 14 本人水平有限 疏忽错误在所难免 还请各位数学高手 编程高手不吝赐教 email popyy netease com B站专栏 https b23 tv oWsl6PD 在上一篇文章中我们讨论了透视投影变换的原理 分
  • 利用cygwin编译cholmod以获得在windows上可用的库lib

    原文http blog parlin me complie cholmod to get library for win64 记录要点 cygwin好好装 希望哪位神人能够提供一个好用的cygwin国内mirror 编译cholmod的时候
  • VB中实现ASP中Server.URLEncode与Server.URLDecode

    在HTTP协议中 浏览器不能向服务器直接传递某些特殊字符 就必须对这些字符进行URL编码再传送 浏览器一般会以 UTF 8 和 ANSI 当前系统语言设置 两种方式发送 URL 到服务器 例如 在 baidu 中搜索中国的结果 http w
  • 十万行代码!!!

    前些天 看到网上雷军写的一篇好象是叫给程序员的几个建议 说到程序员必须要写够十万行代码才能成为高手 不要心存侥幸 于是我回来计算了一下我的程序 不算不知道 一算吓一跳 居然有超过9万行的代码 如果不算表单属性等 也有45000多行纯代码 这
  • 偶然发现的一篇相见很晚的文章:如何学好游戏编程

    今天偶然发现一篇介绍如何学好游戏编程的文章 相见恨晚呀 特转载 转帖地址 http new qzone qq com 79134054 blog 1226580538 如何学好游戏编程 此篇文章献给那些为了游戏编程不怕困难的热血青年 它的神
  • OceanBase使用范例

    http www mysqlops com 2011 08 31 oceanbase use html OceanBase的使用类似于关系型数据库 需要预先创建schema 关于schema的格式 请参见schema说明 假如我们有以下sc

随机推荐

  • 爬取公布的招聘信息(selenium实现)

    目录 1 案例描述 2 爬虫 2 1 爬虫的概念 2 2 爬虫的工作原理 2 3 爬虫的基本流程 3 基本操作 3 1 安装第三方库 3 2 库的作用及其使用
  • html实时显示log,websocketd 实现浏览器查看服务器实时日志

    操作系统 CentOS7 下载 websocketd 安装 nc 命令 yum install nmap ncat 创建监听脚本 cat gt cmd sh lt bin bash pkill x nc while do nc nkl 10
  • 如何实现歌词在页面上使用滚动效果

    首先我们可以看到大多数从后端请求的数据都是这样的 这个时候我们需要用正则以及各种循环把歌词进行重新整理为对象数据 随后就进行页面渲染 然后我们监听歌曲播放的时间 使用添加class的方式对歌词进行高亮操作 最后我们需要最后一步实现歌词滚动即
  • SylixOS Unit Test介绍

    1 Unit Test工程介绍 在开发过程中 经常需要进行复杂的测试工作 部分测试工作需要生成多个可执行程序 普通类型的工程在测试时需要建立多个测试工程 这样会导致测试工作冗余繁杂 Unit Test 工程可以实现一个工程生成多个可执行程序
  • Android开发-CardView卡片View的详解,头条三面技术四面HR

    CardView一般用于需要显示阴影效果的UI 此外CardView还提供了圆角的功能 嘿嘿 这东西还能直接设置成圆形 可以简单的弄成圆形View CardView其实本身是使用FrameLayout 帧布局 所以它其实还是一个布局 引用
  • JavaScript冒泡排序与插入排序的原理

    冒泡排序 原理是临近的数字两两进行比较 按照从小到大或者从大到小的顺序进行交换 这样一趟过去后 最大或最小的数字被交换到了最后一位 图片示例 代码示例 var arr 5 8 3 4 5 9 1 4 5 9 6 3 8 for var i
  • anaconda 通过命令行执行 python 文件

    win10 中 anaconda 通过命令行执行 python 文件 点击三角按钮 在跳出的菜单栏中选择 Open Terminal 通过 python 文件名 py 执行
  • "res://ieframe.dll/dnserrordiagoff.htm"

    最近用vs2005做web应用程序的时候 遇到个奇怪的问题 有的时候点击某个链接 或者触发一个页面刷新的事件时 网页就会跳转成无法显示网页的状态 地址栏中的url是 res ieframe dll dnserrordiagoff htm 一
  • VMware vSphere Hypervisor 6 (ESXi) 免费许可证使用限制

    公司在虚拟化方面使用的是hyper v方案 但是windows的不稳定让人头疼 更新补丁和死机问题都需要定期重启 对于虚拟化平台简直就是灾难 最近在查看关于EXSi6的免费使用限制 没看到太多中文资料 在vmware论坛的Hyperviso
  • C# .net 使用RabbitMq讲解

    一 环境搭建 首先 由于RabbitMQ使用Erlang编写的 需要运行在Erlang运行时环境上 所以在安装RabbitMQ Server之前需要安装Erlang 运行时环境 可以到Erlang官网下载对应平台的安装文件 如果没有安装运行
  • 强引用、软引用、弱引用和虚引用的区别

    1 强引用 StrongReference 最普遍的一种引用方式 如String s abc 变量s就是字符串 abc 的强引用 只要强引用存在 则垃圾回收器就不会回收这个对象 2 软引用 SoftReference 用于描述还有用但非必须
  • ecshop漏洞修复整理

    1 ECShop存在一个盲注漏洞 问题存在于 api client api php文件中 提交特制的恶意POST请求可进行SQL注入攻击 可获得敏感信息或操作数据库 路径 api client includes lib api php 参照
  • ABAP常用系统变量 sy-

    直接在syst结构里面可以找到 abap系统变量 SY SUBRC 系统执行某指令后 表示执行成功与否的变量 0表示成功 SY DBLNT 被处理过的记录的笔数 SY UNAME 当前使用者登入SAP的USERNAME SY DATUM 当
  • Redis 基础总结

    1 NoSQL概述 1 1 数据库分类 目前数据库分 关系型数据库与非关系型数据库 常用的关系型数据库 Oracle MySQL SqlServer DB2 常用的非关系数据库 Redis MongoDB ElasticSearch Hba
  • python实现消消乐小游戏

    import random import time 游戏面板大小 BOARD SIZE 10 图案种类数 PATTERN COUNT 4 相邻图案个数 ADJACENT COUNT 3 游戏时间限制 秒 GAME TIME 60 得分表 S
  • 记录Vue3+ts+ElementPlus 多层级表头动态表格创建

    因为工作需要 需要一个如上图 不确定层级的 多层级表头的表格 搜索网上的方法 多为vue2 element ui的方法 查到的vue3 Element plus的方法仅为建立两层级表格 经借鉴大神方法并修改成功 供自己留存 大神略过 一 创
  • Unity3D开发之Matrix4x4矩阵变换

    在Unity开发中时常会用到Matrix4x4矩阵来变换场景中对象的位置 旋转和缩放 但是很多人都不太理解这儿Matrix4x4变换矩阵 通过DX中的变换矩阵我来讲一讲在unity中这个变换矩阵是怎么变换的 在三维图形程序中 我们可以用几何
  • 稀疏数组(最详解)

    概念 当一个数组中大部分元素为0 或者为同一值的数组时 可以使用稀疏数组来保存该数组 稀疏数组的处理方式是 记录数组一共有几行几列 有多少个不同值 把具有不同值的元素和行列及值记录在一个小规模的数组中 从而缩小程序的规模 如下图 左边是原始
  • 左手坐标系和右手坐标系

    转自 https blog csdn net xiaoluoshan article details 53384103 基本的数学知识 左手坐标系和右手坐标系 这些对于搞图像开发或者游戏开发的朋友来说 应该是很基础的东西 不过对于大部分人来
  • VB mschart控件的使用

    一 先看个小例子 Private Sub Form Load Dim MyData 20 1 As Double x轴坐标值 Y轴坐标值 MyData 0 0 0 MyData 0 1 180 本句代表了 第一点数据的X轴坐标为0 Y轴坐标